Refactor cells for dual tile rendering

This commit is contained in:
2026-05-08 22:05:02 +02:00
parent 9c7d661e8c
commit 40038302de
9 changed files with 225 additions and 76 deletions

View File

@@ -32,28 +32,37 @@ public static class LevelEditor
var cell = level.GetCell(position);
cell = tool switch {
EEditorTool.Floor => cell with { Kind = ECellKind.Floor },
EEditorTool.Floor => cell with { Terrain = ECellTerrain.Floor },
EEditorTool.Wall => cell with {
Kind = ECellKind.Wall,
Terrain = ECellTerrain.Wall,
Prop = ECellProp.None,
Pipe = EPipeMedium.None,
Flow = Balancing.Current.MinHazardValue,
Pressure = Balancing.Current.MinHazardValue,
LeakRate = Balancing.Current.MinHazardValue,
PipeOpen = false,
Powered = false
},
EEditorTool.Reactor => cell with { Kind = ECellKind.Reactor },
EEditorTool.Reactor => cell with { Terrain = ECellTerrain.Floor, Prop = ECellProp.Reactor },
EEditorTool.CoolingPump => cell with {
Kind = ECellKind.CoolingPump,
Terrain = ECellTerrain.Floor,
Prop = ECellProp.CoolingPump,
Powered = true
},
EEditorTool.Generator => cell with {
Kind = ECellKind.Generator,
Terrain = ECellTerrain.Floor,
Prop = ECellProp.Generator,
Powered = true
},
EEditorTool.PressureRegulator => cell with { Kind = ECellKind.PressureRegulator },
EEditorTool.PressureRegulator => cell with { Terrain = ECellTerrain.Floor, Prop = ECellProp.PressureRegulator },
EEditorTool.DiagnosticTerminal => cell with {
Kind = ECellKind.DiagnosticTerminal,
Terrain = ECellTerrain.Floor,
Prop = ECellProp.DiagnosticTerminal,
Powered = true
},
EEditorTool.ControlTerminal => cell with {
Kind = ECellKind.ControlTerminal,
Terrain = ECellTerrain.Floor,
Prop = ECellProp.ControlTerminal,
Powered = true
},
EEditorTool.CoolantPipe => cell with {
@@ -100,7 +109,7 @@ public static class LevelEditor
_ => cell
};
if (cell.Kind == ECellKind.Wall)
if (cell.Terrain == ECellTerrain.Wall)
cell = cell with { Hazards = new() };
return level.SetCell(position, cell);