From fab9bf81c6891c6c15a91e76343c35a8c68ac9c0 Mon Sep 17 00:00:00 2001 From: user Date: Fri, 29 Nov 2024 16:46:34 +0300 Subject: [PATCH] Preserve floor color on ship move --- Source/1.5/ShipInteriorMod2.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Source/1.5/ShipInteriorMod2.cs b/Source/1.5/ShipInteriorMod2.cs index c9b6ae42..8c44c168 100644 --- a/Source/1.5/ShipInteriorMod2.cs +++ b/Source/1.5/ShipInteriorMod2.cs @@ -1950,7 +1950,7 @@ public static void MoveShip(Building core, Map targetMap, IntVec3 adjustment, Fa List roomsToTemp = new List(); List fogToCopy = new List(); List> posTemp = new List>(); - List> terrainToCopy = new List>(); + List> terrainToCopy = new List>(); List> roofToCopy = new List>(); List fireExplosions = new List(); List nukeExplosions = new List(); @@ -2119,14 +2119,16 @@ public static void MoveShip(Building core, Map targetMap, IntVec3 adjustment, Fa } //store terrain var sourceTerrain = sourceMap.terrainGrid.TerrainAt(pos); + ColorDef sourceColor = sourceMap.terrainGrid.ColorAt(pos); if (sourceTerrain.layerable) { - terrainToCopy.Add(new Tuple(adjustedPos, sourceTerrain)); + terrainToCopy.Add(new Tuple(adjustedPos, sourceTerrain, sourceColor)); + sourceMap.terrainGrid.RemoveTopLayer(pos, false); } else if (includeRock && IsRock(sourceTerrain)) { - terrainToCopy.Add(new Tuple(adjustedPos, sourceTerrain)); + terrainToCopy.Add(new Tuple(adjustedPos, sourceTerrain, sourceColor)); sourceMap.terrainGrid.SetTerrain(pos, ResourceBank.TerrainDefOf.EmptySpace); } if (pos.Fogged(sourceMap)) @@ -2450,12 +2452,13 @@ public static void MoveShip(Building core, Map targetMap, IntVec3 adjustment, Fa //move terrain try { - foreach (Tuple tup in terrainToCopy) + foreach (Tuple tup in terrainToCopy) { var targetTile = targetMap.terrainGrid.TerrainAt(tup.Item1); if (!targetTile.layerable || IsHull(targetTile)) { targetMap.terrainGrid.SetTerrain(tup.Item1, tup.Item2); + targetMap.terrainGrid.SetTerrainColor(tup.Item1, tup.Item3); } } if (includeRock)