From ab5d1c0f3afb012965a9a6dea073f1e67fab1cd1 Mon Sep 17 00:00:00 2001 From: octarine-noise Date: Fri, 8 Aug 2014 21:54:07 +0200 Subject: [PATCH] add support for arbitrary grass and dirt blocks --- .../mods/betterfoliage/client/BetterFoliageClient.java | 8 ++++++++ .../client/render/impl/RenderBlockBetterAlgae.java | 4 ++-- .../client/render/impl/RenderBlockBetterGrass.java | 3 ++- .../client/render/impl/RenderBlockBetterReed.java | 4 ++-- .../resources/assets/betterfoliage/classesDirtDefault.cfg | 5 +++++ .../assets/betterfoliage/classesGrassDefault.cfg | 5 +++++ 6 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/assets/betterfoliage/classesDirtDefault.cfg create mode 100644 src/main/resources/assets/betterfoliage/classesGrassDefault.cfg diff --git a/src/main/java/mods/betterfoliage/client/BetterFoliageClient.java b/src/main/java/mods/betterfoliage/client/BetterFoliageClient.java index 1a4f776..09ad6c0 100644 --- a/src/main/java/mods/betterfoliage/client/BetterFoliageClient.java +++ b/src/main/java/mods/betterfoliage/client/BetterFoliageClient.java @@ -34,6 +34,8 @@ public class BetterFoliageClient { public static BlockMatcher leaves = new BlockMatcher(); public static BlockMatcher crops = new BlockMatcher(); + public static BlockMatcher dirt = new BlockMatcher(); + public static BlockMatcher grass = new BlockMatcher(); public static ResourceLocation missingTexture = new ResourceLocation("betterfoliage", "textures/blocks/missing_leaf.png"); @@ -55,6 +57,12 @@ public class BetterFoliageClient { crops.load(new File(BetterFoliage.configDir, "classesCrops.cfg"), new ResourceLocation("betterfoliage:classesCropsDefault.cfg")); MinecraftForge.EVENT_BUS.register(crops); + dirt.load(new File(BetterFoliage.configDir, "classesDirt.cfg"), new ResourceLocation("betterfoliage:classesDirtDefault.cfg")); + MinecraftForge.EVENT_BUS.register(dirt); + + grass.load(new File(BetterFoliage.configDir, "classesGrass.cfg"), new ResourceLocation("betterfoliage:classesGrassDefault.cfg")); + MinecraftForge.EVENT_BUS.register(grass); + MinecraftForge.EVENT_BUS.register(new LeafTextureEnumerator("bf_leaves")); BetterFoliage.log.info("Registering texture generators"); diff --git a/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterAlgae.java b/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterAlgae.java index 5280ad7..6c370a1 100644 --- a/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterAlgae.java +++ b/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterAlgae.java @@ -3,12 +3,12 @@ package mods.betterfoliage.client.render.impl; import java.util.Random; import mods.betterfoliage.BetterFoliage; +import mods.betterfoliage.client.BetterFoliageClient; import mods.betterfoliage.client.render.IRenderBlockDecorator; import mods.betterfoliage.client.render.IconSet; import mods.betterfoliage.client.render.RenderBlockAOBase; import mods.betterfoliage.common.util.Double3; import net.minecraft.block.Block; -import net.minecraft.block.BlockDirt; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; @@ -31,7 +31,7 @@ public class RenderBlockBetterAlgae extends RenderBlockAOBase implements IRender public boolean isBlockAccepted(IBlockAccess blockAccess, int x, int y, int z, Block block, int original) { if (!BetterFoliage.config.algaeEnabled) return false; - if (y >= 254 || !(block instanceof BlockDirt)) return false; + if (!(BetterFoliageClient.dirt.matchesID(block))) return false; if (blockAccess.getBlock(x, y + 1, z).getMaterial() != Material.water) return false; if (blockAccess.getBlock(x, y + 2, z).getMaterial() != Material.water) return false; if (blockAccess.getBiomeGenForCoords(x, z).temperature < 0.4f) return false; diff --git a/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterGrass.java b/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterGrass.java index 4a32240..8261521 100644 --- a/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterGrass.java +++ b/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterGrass.java @@ -1,6 +1,7 @@ package mods.betterfoliage.client.render.impl; import mods.betterfoliage.BetterFoliage; +import mods.betterfoliage.client.BetterFoliageClient; import mods.betterfoliage.client.ShadersModIntegration; import mods.betterfoliage.client.render.IRenderBlockDecorator; import mods.betterfoliage.client.render.IconSet; @@ -30,7 +31,7 @@ public class RenderBlockBetterGrass extends RenderBlockAOBase implements IRender public boolean isBlockAccepted(IBlockAccess blockAccess, int x, int y, int z, Block block, int original) { if (!BetterFoliage.config.grassEnabled) return false; - if (!((block instanceof BlockGrass || block == Blocks.mycelium))) return false; + if (!(BetterFoliageClient.grass.matchesID(block) || block == Blocks.mycelium)) return false; if (!blockAccess.isAirBlock(x, y + 1, z) && blockAccess.getBlock(x, y + 1, z) != Blocks.snow_layer) return false; return true; } diff --git a/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterReed.java b/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterReed.java index 8c6ad78..2b42298 100644 --- a/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterReed.java +++ b/src/main/java/mods/betterfoliage/client/render/impl/RenderBlockBetterReed.java @@ -3,13 +3,13 @@ package mods.betterfoliage.client.render.impl; import java.util.Random; import mods.betterfoliage.BetterFoliage; +import mods.betterfoliage.client.BetterFoliageClient; import mods.betterfoliage.client.ShadersModIntegration; import mods.betterfoliage.client.render.IRenderBlockDecorator; import mods.betterfoliage.client.render.IconSet; import mods.betterfoliage.client.render.RenderBlockAOBase; import mods.betterfoliage.common.util.Double3; import net.minecraft.block.Block; -import net.minecraft.block.BlockDirt; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; @@ -33,7 +33,7 @@ public class RenderBlockBetterReed extends RenderBlockAOBase implements IRenderB public boolean isBlockAccepted(IBlockAccess blockAccess, int x, int y, int z, Block block, int original) { if (!BetterFoliage.config.reedEnabled) return false; - if (y >= 254 || !(block instanceof BlockDirt)) return false; + if (!(BetterFoliageClient.dirt.matchesID(block))) return false; if (blockAccess.getBlock(x, y + 1, z).getMaterial() != Material.water) return false; if (!blockAccess.isAirBlock(x, y + 2, z)) return false; if (blockAccess.getBiomeGenForCoords(x, z).temperature < 0.4f || blockAccess.getBiomeGenForCoords(x, z).rainfall < 0.4f) return false; diff --git a/src/main/resources/assets/betterfoliage/classesDirtDefault.cfg b/src/main/resources/assets/betterfoliage/classesDirtDefault.cfg new file mode 100644 index 0000000..6db3767 --- /dev/null +++ b/src/main/resources/assets/betterfoliage/classesDirtDefault.cfg @@ -0,0 +1,5 @@ +// Vanilla +net.minecraft.block.BlockDirt + +// Enhanced Biomes +enhancedbiomes.blocks.BlockSoilEB \ No newline at end of file diff --git a/src/main/resources/assets/betterfoliage/classesGrassDefault.cfg b/src/main/resources/assets/betterfoliage/classesGrassDefault.cfg new file mode 100644 index 0000000..347fb1c --- /dev/null +++ b/src/main/resources/assets/betterfoliage/classesGrassDefault.cfg @@ -0,0 +1,5 @@ +// Vanilla +net.minecraft.block.BlockGrass + +// Enhanced Biomes +enhancedbiomes.blocks.BlockGrassEB \ No newline at end of file