diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/ClientBlockStateColorCache.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/ClientBlockStateColorCache.java index b859cd780..8a99c354c 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/ClientBlockStateColorCache.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/ClientBlockStateColorCache.java @@ -319,8 +319,11 @@ public class ClientBlockStateColorCache // (i.e. AIR is somehow passed in) } + // return for the first valid direction we find if (quads != null && !quads.isEmpty() + // for rotated blocks (ie logs) we want the side instead of the top, + // so logs use their bark side instead of their cut/inner side && !( #if MC_VER <= MC_1_12_2 this.blockState.getBlock() instanceof BlockRotatedPillar @@ -466,6 +469,13 @@ public class ClientBlockStateColorCache BlockState effectiveBlockState = this.blockState; #endif + + + //=========================// + // specific state handling // + //=========================// + //region + // if this block is a slab, use it's double variant so we can get the top face, // otherwise the color will use the side, which isn't as accurate #if MC_VER <= MC_1_12_2 @@ -480,6 +490,31 @@ public class ClientBlockStateColorCache } #endif + // huge mushroom block sides will show the inner color, + // which isn't what you want to see at a distance, + // you want to see the primary color (ie red for red mushrooms) + // which is shown on all sides for the default state + #if MC_VER <= MC_1_12_2 + if (this.blockState.getBlock() instanceof BlockHugeMushroom) + { + effectiveBlockState = this.blockState.getBlock().getDefaultState(); + } + #else + if (this.blockState.getBlock() instanceof HugeMushroomBlock) + { + effectiveBlockState = this.blockState.getBlock().defaultBlockState(); + } + #endif + + //endregion + + + + //===============// + // quad handling // + //===============// + //region + List quads; #if MC_VER <= MC_1_12_2 @@ -519,6 +554,8 @@ public class ClientBlockStateColorCache } #endif + //endregion + return quads; }