From 64d30728ffa9f14e8d56e0f8d16d282a57d1cf6a Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 10 Oct 2023 18:45:58 +0900 Subject: [PATCH] removing terrain block also removes its ore --- src/net/torvald/terrarum/gameworld/GameWorld.kt | 16 ++++++++++++++-- src/net/torvald/terrarum/realestate/LandUtil.kt | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/net/torvald/terrarum/gameworld/GameWorld.kt b/src/net/torvald/terrarum/gameworld/GameWorld.kt index 38b3aa33e..ca7edaa93 100644 --- a/src/net/torvald/terrarum/gameworld/GameWorld.kt +++ b/src/net/torvald/terrarum/gameworld/GameWorld.kt @@ -376,12 +376,24 @@ open class GameWorld( if (BlockCodex[itemID].isSolid) { layerFluids.unsafeSetTile(x, y, fluidNameToNumberMap[Fluid.NULL]!!, 0f) +// Terrarum.ingame?.modified(LandUtil.LAYER_FLUID, x, y) } // fluid tiles-item should be modified so that they will also place fluid onto their respective map + val oldOre = layerOres.unsafeGetTile(x, y) + val deleteOldOre = (oldOre != 0 && !BlockCodex[itemID].isSolid) + + if (deleteOldOre) { + layerOres.unsafeSetTile(x, y, 0, 0) + } + if (!bypassEvent && oldTerrain != itemID) { Terrarum.ingame?.queueTerrainChangedEvent(oldTerrain, itemID, x, y) Terrarum.ingame?.modified(LandUtil.LAYER_TERR, x, y) + + if (deleteOldOre) { + Terrarum.ingame?.modified(LandUtil.LAYER_ORES, x, y) + } } } @@ -398,7 +410,7 @@ open class GameWorld( if (!bypassEvent) { Terrarum.ingame?.queueWireChangedEvent(tile, false, x, y) - Terrarum.ingame?.modified(LandUtil.LAYER_WIRE, x, y) +// Terrarum.ingame?.modified(LandUtil.LAYER_WIRE, x, y) } /* @@ -430,7 +442,7 @@ open class GameWorld( if (wireNode != null) { if (!bypassEvent) { Terrarum.ingame?.queueWireChangedEvent(tile, true, x, y) - Terrarum.ingame?.modified(LandUtil.LAYER_WIRE, x, y) +// Terrarum.ingame?.modified(LandUtil.LAYER_WIRE, x, y) } // disconnect neighbouring nodes diff --git a/src/net/torvald/terrarum/realestate/LandUtil.kt b/src/net/torvald/terrarum/realestate/LandUtil.kt index 91f356272..66de89133 100644 --- a/src/net/torvald/terrarum/realestate/LandUtil.kt +++ b/src/net/torvald/terrarum/realestate/LandUtil.kt @@ -16,7 +16,8 @@ object LandUtil { const val LAYER_TERR = 0 const val LAYER_WALL = 1 - const val LAYER_WIRE = 2 + const val LAYER_ORES = 2 + const val LAYER_WIRE = 20 const val LAYER_FLUID = 3 fun toChunkNum(world: GameWorld, x: Int, y: Int): Int {