From dbc9cbb418cfa583e370509219045e5ca6631e30 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 6 Apr 2024 12:37:44 -0500 Subject: [PATCH] Have grass fade to dirt for walls --- .../wrappers/block/BlockStateWrapper.java | 7 +++++- .../wrappers/world/ClientLevelWrapper.java | 23 +++++++++++++++++++ coreSubProjects | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java index 3e3a901dd..4b2d1e0c5 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java @@ -69,6 +69,8 @@ public class BlockStateWrapper implements IBlockStateWrapper public static final String AIR_STRING = "AIR"; public static final BlockStateWrapper AIR = new BlockStateWrapper(null, null); + public static final String DIRT_RESOURCE_LOCATION_STRING = "minecraft:dirt"; + // TODO: Make this changeable through the config public static final String[] RENDERER_IGNORED_BLOCKS_RESOURCE_LOCATIONS = { AIR_STRING, "minecraft:barrier", "minecraft:structure_void", "minecraft:light", "minecraft:tripwire" }; public static HashSet rendererIgnoredBlocks = null; @@ -521,9 +523,12 @@ public class BlockStateWrapper implements IBlockStateWrapper { return IrisBlockMaterial.METAL; } + else if (serialString.contains("grass_block")) + { + return IrisBlockMaterial.GRASS; + } else if ( serialString.contains("dirt") - || serialString.contains("grass_block") || serialString.contains("gravel") || serialString.contains("mud") || serialString.contains("podzol") diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java index 989d017bc..b51737876 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java @@ -30,6 +30,7 @@ import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; public class ClientLevelWrapper implements IClientLevelWrapper @@ -41,6 +42,8 @@ public class ClientLevelWrapper implements IClientLevelWrapper private final ClientLevel level; private final ClientBlockDetailMap blockMap = new ClientBlockDetailMap(this); + private BlockStateWrapper dirtBlockWrapper; + //=============// @@ -116,6 +119,26 @@ public class ClientLevelWrapper implements IClientLevelWrapper return this.blockMap.getColor(((BlockStateWrapper) blockState).blockState, (BiomeWrapper) biome, pos); } + @Override + public int getDirtBlockColor() + { + if (this.dirtBlockWrapper == null) + { + try + { + this.dirtBlockWrapper = (BlockStateWrapper) BlockStateWrapper.deserialize(BlockStateWrapper.DIRT_RESOURCE_LOCATION_STRING, this); + } + catch (IOException e) + { + // shouldn't happen, but just in case + LOGGER.warn("Unable to get dirt color with resource location ["+BlockStateWrapper.DIRT_RESOURCE_LOCATION_STRING+"] with level ["+this+"].", e); + return -1; + } + } + + return this.blockMap.getColor(this.dirtBlockWrapper.blockState, BiomeWrapper.EMPTY_WRAPPER, DhBlockPos.ZERO); + } + @Override public IDimensionTypeWrapper getDimensionType() { return DimensionTypeWrapper.getDimensionTypeWrapper(this.level.dimensionType()); } diff --git a/coreSubProjects b/coreSubProjects index b4b7738aa..10d9282df 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit b4b7738aa64e23a0282994a3c9e7558766a8b40e +Subproject commit 10d9282df77f649a8e563d007e1197b6193c8efd