refactor(backend): align station module production semantics

This commit is contained in:
2026-03-27 16:44:50 -04:00
parent 3237735b08
commit 04d182e93f
10 changed files with 125 additions and 82 deletions

View File

@@ -216,12 +216,8 @@ internal sealed class StationSimulationService
{
foreach (var moduleId in station.InstalledModules.Distinct(StringComparer.Ordinal))
{
if (!world.ModuleDefinitions.TryGetValue(moduleId, out var def) || string.IsNullOrEmpty(def.ProductionMode))
{
continue;
}
if (string.Equals(def.ProductionMode, "commanded", StringComparison.Ordinal) && station.CommanderId is null)
if (!world.ModuleDefinitions.TryGetValue(moduleId, out var definition)
|| definition is not ProductionLaneModuleDefinition)
{
continue;
}
@@ -241,7 +237,7 @@ internal sealed class StationSimulationService
internal static string? GetStationProductionLaneKey(SimulationWorld world, RecipeDefinition recipe) =>
recipe.RequiredModules.FirstOrDefault(moduleId =>
world.ModuleDefinitions.TryGetValue(moduleId, out var def) && !string.IsNullOrEmpty(def.ProductionMode));
world.ModuleDefinitions.TryGetValue(moduleId, out var definition) && definition is ProductionLaneModuleDefinition);
internal static float GetStationProductionThroughput(SimulationWorld world, StationRuntime station, RecipeDefinition recipe)
{