Replace arbitrary game units with real-world measurements throughout the simulation and viewer: planet orbits in AU, sizes in km, galaxy positions in light-years. Add SimulationUnits helpers for conversions, separate WarpSpeed from FtlSpeed for ships, fix FTL transit progress to use galaxy-space distances, overhaul Lagrange point placement with Hill sphere approximation, and update the viewer to scale and format all distances correctly. Ships in FTL transit now render in galaxy view. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
87 lines
2.1 KiB
C#
87 lines
2.1 KiB
C#
namespace SpaceGame.Simulation.Api.Contracts;
|
|
|
|
public sealed record ShipSnapshot(
|
|
string Id,
|
|
string Label,
|
|
string Role,
|
|
string ShipClass,
|
|
string SystemId,
|
|
Vector3Dto LocalPosition,
|
|
Vector3Dto LocalVelocity,
|
|
Vector3Dto TargetLocalPosition,
|
|
string State,
|
|
string? OrderKind,
|
|
string DefaultBehaviorKind,
|
|
string ControllerTaskKind,
|
|
string? NodeId,
|
|
string? BubbleId,
|
|
string? DockedStationId,
|
|
string? CommanderId,
|
|
string? PolicySetId,
|
|
float CargoCapacity,
|
|
string? CargoItemId,
|
|
float WorkerPopulation,
|
|
float EnergyStored,
|
|
float TravelSpeed,
|
|
string TravelSpeedUnit,
|
|
IReadOnlyList<InventoryEntry> Inventory,
|
|
string FactionId,
|
|
float Health,
|
|
IReadOnlyList<string> History,
|
|
ShipActionProgressSnapshot? CurrentAction,
|
|
ShipSpatialStateSnapshot SpatialState);
|
|
|
|
public sealed record ShipDelta(
|
|
string Id,
|
|
string Label,
|
|
string Role,
|
|
string ShipClass,
|
|
string SystemId,
|
|
Vector3Dto LocalPosition,
|
|
Vector3Dto LocalVelocity,
|
|
Vector3Dto TargetLocalPosition,
|
|
string State,
|
|
string? OrderKind,
|
|
string DefaultBehaviorKind,
|
|
string ControllerTaskKind,
|
|
string? NodeId,
|
|
string? BubbleId,
|
|
string? DockedStationId,
|
|
string? CommanderId,
|
|
string? PolicySetId,
|
|
float CargoCapacity,
|
|
string? CargoItemId,
|
|
float WorkerPopulation,
|
|
float EnergyStored,
|
|
float TravelSpeed,
|
|
string TravelSpeedUnit,
|
|
IReadOnlyList<InventoryEntry> Inventory,
|
|
string FactionId,
|
|
float Health,
|
|
IReadOnlyList<string> History,
|
|
ShipActionProgressSnapshot? CurrentAction,
|
|
ShipSpatialStateSnapshot SpatialState);
|
|
|
|
public sealed record ShipActionProgressSnapshot(
|
|
string Label,
|
|
float Progress);
|
|
|
|
public sealed record ShipSpatialStateSnapshot(
|
|
string SpaceLayer,
|
|
string CurrentSystemId,
|
|
string? CurrentNodeId,
|
|
string? CurrentBubbleId,
|
|
Vector3Dto? LocalPosition,
|
|
Vector3Dto? SystemPosition,
|
|
string MovementRegime,
|
|
string? DestinationNodeId,
|
|
ShipTransitSnapshot? Transit);
|
|
|
|
public sealed record ShipTransitSnapshot(
|
|
string Regime,
|
|
string? OriginNodeId,
|
|
string? DestinationNodeId,
|
|
DateTimeOffset? StartedAtUtc,
|
|
DateTimeOffset? ArrivalDueAtUtc,
|
|
float Progress);
|