From 5d82c4088433dc72226f96da551435d2dde547eb Mon Sep 17 00:00:00 2001 From: "Blue (Lukas Rieger)" Date: Mon, 7 Sep 2020 12:28:14 +0200 Subject: [PATCH] Ignore fully translucent blocks in the terrain-height calculation This makes sure that, e.g. barrier-blocks are not visible on the lowres map. Fixes #83 --- .../bluemap/core/render/hires/HiresModelRenderer.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/render/hires/HiresModelRenderer.java b/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/render/hires/HiresModelRenderer.java index dab09380..5e70ccd3 100644 --- a/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/render/hires/HiresModelRenderer.java +++ b/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/render/hires/HiresModelRenderer.java @@ -81,8 +81,6 @@ public HiresModel render(WorldTile tile, AABB region) { for (int y = min.getY(); y <= max.getY(); y++){ Block block = world.getBlock(x, y, z); if (block.getBlockState().equals(BlockState.AIR)) continue; - - maxHeight = y; BlockStateModel blockModel; try { @@ -98,8 +96,13 @@ public HiresModel render(WorldTile tile, AABB region) { } blockModel.translate(new Vector3f(x, y, z).sub(modelMin.toFloat())); - - color = MathUtils.overlayColors(blockModel.getMapColor(), color); + + //update color and height (only if not 100% translucent) + Vector4f blockColor = blockModel.getMapColor(); + if (blockColor.getW() > 0) { + maxHeight = y; + color = MathUtils.overlayColors(blockModel.getMapColor(), color); + } //TODO: quick hack to random offset grass if (block.getBlockState().getFullId().equals(grassId)){