From 24bb87d6355fe59bf1ceb42392fa0947fbae42e9 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sun, 8 Dec 2019 00:59:19 -0600 Subject: [PATCH] Fix incorrect transparency handling on copyblock: texture handling --- .../java/org/dynmap/hdmap/HDBlockStateTextureMap.java | 10 ++++++---- .../src/main/java/org/dynmap/hdmap/TexturePack.java | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockStateTextureMap.java b/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockStateTextureMap.java index 2b6d98b6..9617de69 100644 --- a/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockStateTextureMap.java +++ b/DynmapCore/src/main/java/org/dynmap/hdmap/HDBlockStateTextureMap.java @@ -97,7 +97,7 @@ public class HDBlockStateTextureMap { if ((this.blockset != null) && (this.blockset.equals("core") == false)) { HDBlockModels.resetIfNotBlockSet(bs, this.blockset); } - copyToStateIndex(bs, this); + copyToStateIndex(bs, this, null); } } else { // Else, loop over all state IDs for given block @@ -110,7 +110,7 @@ public class HDBlockStateTextureMap { if ((this.blockset != null) && (this.blockset.equals("core") == false)) { HDBlockModels.resetIfNotBlockSet(bs, this.blockset); } - copyToStateIndex(bs, this); + copyToStateIndex(bs, this, null); } } } @@ -144,9 +144,11 @@ public class HDBlockStateTextureMap { return m; } // Copy given block state to given state index - public static void copyToStateIndex(DynmapBlockState blk, HDBlockStateTextureMap map) { + public static void copyToStateIndex(DynmapBlockState blk, HDBlockStateTextureMap map, TexturePack.BlockTransparency trans) { resize(blk.globalStateIndex); - TexturePack.BlockTransparency trans = map.trans; + if (trans == null) { + trans = map.trans; + } // Force waterloogged blocks to use SEMITRANSPARENT (same as water) if ((trans == TexturePack.BlockTransparency.TRANSPARENT) && blk.isWaterlogged()) { trans = TexturePack.BlockTransparency.SEMITRANSPARENT; diff --git a/DynmapCore/src/main/java/org/dynmap/hdmap/TexturePack.java b/DynmapCore/src/main/java/org/dynmap/hdmap/TexturePack.java index bb9759e2..b37d4fc1 100644 --- a/DynmapCore/src/main/java/org/dynmap/hdmap/TexturePack.java +++ b/DynmapCore/src/main/java/org/dynmap/hdmap/TexturePack.java @@ -2222,13 +2222,13 @@ public class TexturePack { if (stateids == null) { for (int sid = 0; sid < dblk.getStateCount(); sid++) { DynmapBlockState dblk2 = dblk.getState(sid); - HDBlockStateTextureMap.copyToStateIndex(dblk2, map); + HDBlockStateTextureMap.copyToStateIndex(dblk2, map, trans); } } else { for (int stateid = stateids.nextSetBit(0); stateid >= 0; stateid = stateids.nextSetBit(stateid+1)) { DynmapBlockState dblk2 = dblk.getState(stateid); - HDBlockStateTextureMap.copyToStateIndex(dblk2, map); + HDBlockStateTextureMap.copyToStateIndex(dblk2, map, trans); } } }