diff --git a/client-mod/src/client/java/net/momirealms/craftEngineFabricMod/client/CraftEngineFabricModClient.java b/client-mod/src/client/java/net/momirealms/craftEngineFabricMod/client/CraftEngineFabricModClient.java index 01fffd7dd..2d846701b 100644 --- a/client-mod/src/client/java/net/momirealms/craftEngineFabricMod/client/CraftEngineFabricModClient.java +++ b/client-mod/src/client/java/net/momirealms/craftEngineFabricMod/client/CraftEngineFabricModClient.java @@ -7,6 +7,7 @@ import net.minecraft.client.render.RenderLayer; import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; import net.momirealms.craftEngineFabricMod.client.network.CraftEnginePayload; +import net.momirealms.craftEngineFabricMod.client.util.BlockUtils; public class CraftEngineFabricModClient implements ClientModInitializer { public static final String MOD_ID = "craftengine"; @@ -17,7 +18,10 @@ public class CraftEngineFabricModClient implements ClientModInitializer { Registries.BLOCK.forEach(block -> { Identifier id = Registries.BLOCK.getId(block); if (id.getNamespace().equals(CraftEngineFabricModClient.MOD_ID)) { - BlockRenderLayerMap.INSTANCE.putBlock(block, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(block, RenderLayer.getCutoutMipped()); + if (id.getPath().contains("leaves")) { + BlockUtils.registerColor(block); + } } }); } diff --git a/client-mod/src/client/java/net/momirealms/craftEngineFabricMod/client/util/BlockUtils.java b/client-mod/src/client/java/net/momirealms/craftEngineFabricMod/client/util/BlockUtils.java new file mode 100644 index 000000000..284859cbf --- /dev/null +++ b/client-mod/src/client/java/net/momirealms/craftEngineFabricMod/client/util/BlockUtils.java @@ -0,0 +1,21 @@ +package net.momirealms.craftEngineFabricMod.client.util; + +import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; +import net.minecraft.block.Block; +import net.minecraft.client.color.world.BiomeColors; +import net.minecraft.world.biome.FoliageColors; + +public class BlockUtils { + public static void registerColor(Block block) { + + ColorProviderRegistry.BLOCK.register( + (state, world, pos, tintIndex) -> { + if (world != null && pos != null) { + return BiomeColors.getFoliageColor(world, pos); + } + return FoliageColors.DEFAULT; // 默认颜色 + }, + block + ); + } +}