This commit is contained in:
Boki 2026-03-06 14:37:05 -05:00
parent 4424f4c3a8
commit 0e7de0a5f3
281 changed files with 3188 additions and 611 deletions

View file

@ -0,0 +1,34 @@
using System.Numerics;
namespace Nexus.Core;
public class GameState
{
public long TickNumber { get; set; }
public float DeltaTime { get; set; }
public long TimestampMs { get; set; }
public PlayerState Player { get; set; } = new();
public IReadOnlyList<EntitySnapshot> Entities { get; set; } = [];
public IReadOnlyList<EntitySnapshot> HostileMonsters { get; set; } = [];
public IReadOnlyList<EntitySnapshot> NearbyLoot { get; set; } = [];
public WalkabilitySnapshot? Terrain { get; set; }
public uint AreaHash { get; set; }
public int AreaLevel { get; set; }
public string? CurrentAreaName { get; set; }
public bool IsLoading { get; set; }
public bool IsEscapeOpen { get; set; }
public DangerLevel Danger { get; set; }
public Matrix4x4? CameraMatrix { get; set; }
public IReadOnlyList<QuestProgress> ActiveQuests { get; set; } = [];
/// <summary>Active quests as shown in the game UI (title + objectives).</summary>
public IReadOnlyList<UiQuestInfo> UiQuests { get; set; } = [];
/// <summary>In-progress quests from the quest linked list with target areas and paths.</summary>
public IReadOnlyList<QuestInfo> Quests { get; set; } = [];
// Derived (computed once per tick by GameStateEnricher)
public ThreatMap Threats { get; set; } = new();
public IReadOnlyList<EntitySnapshot> NearestEnemies { get; set; } = [];
public IReadOnlyList<GroundEffect> GroundEffects { get; set; } = [];
}