149 lines
3.1 KiB
C#
149 lines
3.1 KiB
C#
namespace SpaceGame.Simulation.Api.Contracts;
|
|
|
|
public sealed record WorldSnapshot(
|
|
string Label,
|
|
int Seed,
|
|
long Sequence,
|
|
int TickIntervalMs,
|
|
DateTimeOffset GeneratedAtUtc,
|
|
IReadOnlyList<SystemSnapshot> Systems,
|
|
IReadOnlyList<ResourceNodeSnapshot> Nodes,
|
|
IReadOnlyList<StationSnapshot> Stations,
|
|
IReadOnlyList<ShipSnapshot> Ships,
|
|
IReadOnlyList<FactionSnapshot> Factions);
|
|
|
|
public sealed record WorldDelta(
|
|
long Sequence,
|
|
int TickIntervalMs,
|
|
DateTimeOffset GeneratedAtUtc,
|
|
bool RequiresSnapshotRefresh,
|
|
IReadOnlyList<SimulationEventRecord> Events,
|
|
IReadOnlyList<ResourceNodeDelta> Nodes,
|
|
IReadOnlyList<StationDelta> Stations,
|
|
IReadOnlyList<ShipDelta> Ships,
|
|
IReadOnlyList<FactionDelta> Factions);
|
|
|
|
public sealed record SimulationEventRecord(
|
|
string EntityKind,
|
|
string EntityId,
|
|
string Kind,
|
|
string Message,
|
|
DateTimeOffset OccurredAtUtc);
|
|
|
|
public sealed record SystemSnapshot(
|
|
string Id,
|
|
string Label,
|
|
Vector3Dto Position,
|
|
string StarColor,
|
|
float StarSize,
|
|
IReadOnlyList<PlanetSnapshot> Planets);
|
|
|
|
public sealed record PlanetSnapshot(
|
|
string Label,
|
|
float OrbitRadius,
|
|
float Size,
|
|
string Color,
|
|
bool HasRing);
|
|
|
|
public sealed record ResourceNodeSnapshot(
|
|
string Id,
|
|
string SystemId,
|
|
Vector3Dto Position,
|
|
float OreRemaining,
|
|
float MaxOre,
|
|
string ItemId);
|
|
|
|
public sealed record ResourceNodeDelta(
|
|
string Id,
|
|
string SystemId,
|
|
Vector3Dto Position,
|
|
float OreRemaining,
|
|
float MaxOre,
|
|
string ItemId);
|
|
|
|
public sealed record StationSnapshot(
|
|
string Id,
|
|
string Label,
|
|
string Category,
|
|
string SystemId,
|
|
Vector3Dto Position,
|
|
string Color,
|
|
int DockedShips,
|
|
float OreStored,
|
|
float RefinedStock,
|
|
string FactionId);
|
|
|
|
public sealed record StationDelta(
|
|
string Id,
|
|
string Label,
|
|
string Category,
|
|
string SystemId,
|
|
Vector3Dto Position,
|
|
string Color,
|
|
int DockedShips,
|
|
float OreStored,
|
|
float RefinedStock,
|
|
string FactionId);
|
|
|
|
public sealed record ShipSnapshot(
|
|
string Id,
|
|
string Label,
|
|
string Role,
|
|
string ShipClass,
|
|
string SystemId,
|
|
Vector3Dto Position,
|
|
Vector3Dto Velocity,
|
|
Vector3Dto TargetPosition,
|
|
string State,
|
|
string? OrderKind,
|
|
string DefaultBehaviorKind,
|
|
string ControllerTaskKind,
|
|
float Cargo,
|
|
float CargoCapacity,
|
|
string? CargoItemId,
|
|
string FactionId,
|
|
float Health,
|
|
IReadOnlyList<string> History);
|
|
|
|
public sealed record ShipDelta(
|
|
string Id,
|
|
string Label,
|
|
string Role,
|
|
string ShipClass,
|
|
string SystemId,
|
|
Vector3Dto Position,
|
|
Vector3Dto Velocity,
|
|
Vector3Dto TargetPosition,
|
|
string State,
|
|
string? OrderKind,
|
|
string DefaultBehaviorKind,
|
|
string ControllerTaskKind,
|
|
float Cargo,
|
|
float CargoCapacity,
|
|
string? CargoItemId,
|
|
string FactionId,
|
|
float Health,
|
|
IReadOnlyList<string> History);
|
|
|
|
public sealed record FactionSnapshot(
|
|
string Id,
|
|
string Label,
|
|
string Color,
|
|
float Credits,
|
|
float OreMined,
|
|
float GoodsProduced,
|
|
int ShipsBuilt,
|
|
int ShipsLost);
|
|
|
|
public sealed record FactionDelta(
|
|
string Id,
|
|
string Label,
|
|
string Color,
|
|
float Credits,
|
|
float OreMined,
|
|
float GoodsProduced,
|
|
int ShipsBuilt,
|
|
int ShipsLost);
|
|
|
|
public sealed record Vector3Dto(float X, float Y, float Z);
|