Adds an `.editorconfig` file with C# and project-specific conventions. Applies consistent indentation and formatting across backend handlers, runtime models, and AI services.
51 lines
2.2 KiB
C#
51 lines
2.2 KiB
C#
namespace SpaceGame.Api.Stations.Runtime;
|
|
|
|
public sealed class StationRuntime
|
|
{
|
|
public required string Id { get; init; }
|
|
public required string SystemId { get; init; }
|
|
public required string Label { get; set; }
|
|
public string Category { get; set; } = "station";
|
|
public string Objective { get; set; } = "general";
|
|
public string Color { get; set; } = "#8df0d2";
|
|
public required Vector3 Position { get; set; }
|
|
public float Radius { get; set; } = 24f;
|
|
public required string FactionId { get; init; }
|
|
public string? CelestialId { get; set; }
|
|
public string? CommanderId { get; set; }
|
|
public string? PolicySetId { get; set; }
|
|
public List<StationModuleRuntime> Modules { get; } = [];
|
|
public float Health { get; set; } = 600f;
|
|
public float MaxHealth { get; set; } = 600f;
|
|
public IEnumerable<string> InstalledModules => Modules.Select((module) => module.ModuleId);
|
|
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 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 StationModuleRuntime
|
|
{
|
|
public required string Id { get; init; }
|
|
public required string ModuleId { get; init; }
|
|
public float Health { get; set; }
|
|
public float MaxHealth { get; set; }
|
|
}
|
|
|
|
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;
|
|
}
|