41 lines
1.8 KiB
C#
41 lines
1.8 KiB
C#
using SpaceGame.Simulation.Api.Data;
|
|
|
|
namespace SpaceGame.Simulation.Api.Simulation;
|
|
|
|
public sealed class StationRuntime
|
|
{
|
|
public required string Id { get; init; }
|
|
public required string SystemId { get; init; }
|
|
public required ConstructibleDefinition Definition { get; init; }
|
|
public required Vector3 Position { get; set; }
|
|
public required string FactionId { get; init; }
|
|
public string? NodeId { get; set; }
|
|
public string? BubbleId { get; set; }
|
|
public string? AnchorNodeId { get; set; }
|
|
public string? CommanderId { get; set; }
|
|
public string? PolicySetId { get; set; }
|
|
public List<string> InstalledModules { get; } = [];
|
|
public Dictionary<string, float> Inventory { get; } = new(StringComparer.Ordinal);
|
|
public Dictionary<string, float> ProductionLaneTimers { get; } = new(StringComparer.Ordinal);
|
|
public Dictionary<int, string> DockingPadAssignments { get; } = new();
|
|
public HashSet<string> MarketOrderIds { get; } = new(StringComparer.Ordinal);
|
|
public float EnergyStored { get; set; }
|
|
public float Population { get; set; }
|
|
public float PopulationCapacity { get; set; }
|
|
public float WorkforceRequired { get; set; }
|
|
public float WorkforceEffectiveRatio { get; set; } = 0.1f;
|
|
public float PopulationGrowthProgress { get; set; }
|
|
public float ShipProductionProgressSeconds { get; set; }
|
|
public HashSet<string> DockedShipIds { get; } = [];
|
|
public ModuleConstructionRuntime? ActiveConstruction { get; set; }
|
|
public string LastDeltaSignature { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class ModuleConstructionRuntime
|
|
{
|
|
public required string ModuleId { get; init; }
|
|
public float ProgressSeconds { get; set; }
|
|
public float RequiredSeconds { get; init; }
|
|
public string AssignedConstructorShipId { get; set; } = string.Empty;
|
|
}
|