From 661fae488dcf8197e590c12ac06da11ed3eb87ff Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 11 Sep 2023 00:44:44 +0900 Subject: [PATCH] hopelessly fixing wall flicker when taking down --- .../torvald/terrarum/worlddrawer/BlocksDrawer.kt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt index 84a81c5a8..b94f145ca 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt @@ -274,6 +274,10 @@ internal object BlocksDrawer { return k } + private val occlusionRenderTag = CreateTileAtlas.RenderTag( + OCCLUSION_TILE_NUM_BASE, CreateTileAtlas.RenderTag.CONNECT_SELF, CreateTileAtlas.RenderTag.MASK_47 + ) + /** * Autotiling; writes to buffer. Actual draw code must be called after this operation. * @@ -338,11 +342,9 @@ internal object BlocksDrawer { 0 } - val renderTag = App.tileMaker.getRenderTag(thisTile) + val renderTag = if (mode == OCCLUSION) occlusionRenderTag else App.tileMaker.getRenderTag(thisTile) val tileNumberBase = - if (mode == OCCLUSION) - OCCLUSION_TILE_NUM_BASE - else if (mode == FLUID) + if (mode == FLUID) App.tileMaker.fluidToTileNumber(world.getFluid(x, y)) else renderTag.tileNumber @@ -354,9 +356,6 @@ internal object BlocksDrawer { // special case: fluids else if (mode == FLUID) tileNumberBase + connectLut47[nearbyTilesInfo] - // special case: occlusion - else if (mode == OCCLUSION) - tileNumberBase + connectLut47[nearbyTilesInfo] // rest of the cases: terrain and walls else tileNumberBase + when (renderTag.maskType) { CreateTileAtlas.RenderTag.MASK_NA -> 0