refactor(backend): align station module production semantics
This commit is contained in:
@@ -9,6 +9,25 @@ internal static class SimulationRuntimeSupport
|
||||
internal static int CountStationModules(StationRuntime station, ModuleType moduleType) =>
|
||||
station.Modules.Count(module => module.ModuleType == moduleType);
|
||||
|
||||
internal static float GetStationSupportedPopulation(
|
||||
IReadOnlyDictionary<string, ModuleDefinition> moduleDefinitions,
|
||||
StationRuntime station) =>
|
||||
40f + station.Modules
|
||||
.Select(module => moduleDefinitions.TryGetValue(module.ModuleId, out var definition) && definition is HabitationModuleDefinition habitation
|
||||
? habitation.SupportedPopulation
|
||||
: 0f)
|
||||
.Sum();
|
||||
|
||||
internal static float GetStationRequiredWorkforce(
|
||||
IReadOnlyDictionary<string, ModuleDefinition> moduleDefinitions,
|
||||
StationRuntime station) =>
|
||||
MathF.Max(12f, station.Modules
|
||||
.Select(module => moduleDefinitions.TryGetValue(module.ModuleId, out var definition)
|
||||
&& definition is ProductionLaneModuleDefinition productionLane
|
||||
? productionLane.RequiredWorkforce
|
||||
: 0f)
|
||||
.Sum());
|
||||
|
||||
internal static float GetStationStorageCapacity(SimulationWorld world, StationRuntime station, StorageKind storageKind)
|
||||
{
|
||||
SyncStorageModuleLevels(world, station, storageKind);
|
||||
|
||||
Reference in New Issue
Block a user