From 05945b7bcdb4a52accde5cb69df034897d7d426c Mon Sep 17 00:00:00 2001 From: Adubbz Date: Tue, 24 Sep 2013 09:14:59 +1000 Subject: [PATCH] Take 2 at reeds --- .../biomesoplenty/blocks/BlockBOPPlant.java | 3 ++ .../blocks/renderers/FoliageRenderer.java | 44 ++----------------- .../blocks/renderers/PlantsRenderer.java | 16 ++++++- .../blocks/renderers/RenderUtils.java | 36 +++++++++++++++ 4 files changed, 58 insertions(+), 41 deletions(-) diff --git a/common/biomesoplenty/blocks/BlockBOPPlant.java b/common/biomesoplenty/blocks/BlockBOPPlant.java index af3e0d1a5..8827507a6 100644 --- a/common/biomesoplenty/blocks/BlockBOPPlant.java +++ b/common/biomesoplenty/blocks/BlockBOPPlant.java @@ -32,6 +32,7 @@ public class BlockBOPPlant extends BlockFlower implements IShearable { private static final String[] plants = new String[] {"deadgrass", "desertgrass", "desertsprouts", "dunegrass", "holytallgrass", "thorn", "barley", "cattail", "rivercane", "cattailtop", "cattailbottom", "wildcarrot", "cactus", "witherwart", "reed"}; private Icon[] textures; + public Icon reedbottom; private static final int CATTAILTOP = 9; private static final int CATTAILBOTTOM = 10; @@ -56,6 +57,8 @@ public class BlockBOPPlant extends BlockFlower implements IShearable for (int i = 0; i < plants.length; ++i) { textures[i] = iconRegister.registerIcon("biomesoplenty:" + plants[i]); } + + reedbottom = iconRegister.registerIcon("biomesoplenty:" + "reedbottom"); } @Override diff --git a/common/biomesoplenty/blocks/renderers/FoliageRenderer.java b/common/biomesoplenty/blocks/renderers/FoliageRenderer.java index 74e396085..77d1336ca 100644 --- a/common/biomesoplenty/blocks/renderers/FoliageRenderer.java +++ b/common/biomesoplenty/blocks/renderers/FoliageRenderer.java @@ -173,9 +173,9 @@ public class FoliageRenderer implements ISimpleBlockRenderingHandler Icon berryBushBerry = ((BlockBOPFoliage)Blocks.foliage.get()).berryBushBerry; tessellator.setColorOpaque_F(par4 * par5, par4 * par6, par4 * par7); - renderCrossedSquaresFromIcon(berryBush, par1, par2, par3, par4, renderer); + RenderUtils.renderCrossedSquaresFromIcon(berryBush, par1, par2, par3, par4, renderer); tessellator.setColorOpaque_F(par4, par4, par4); - renderCrossedSquaresFromIcon(berryBushBerry, par1, par2, par3, par4, renderer); + RenderUtils.renderCrossedSquaresFromIcon(berryBushBerry, par1, par2, par3, par4, renderer); } private static void renderShrub(double par1, double par2, double par3, float par4, float par5, float par6, float par7, RenderBlocks renderer) @@ -185,44 +185,8 @@ public class FoliageRenderer implements ISimpleBlockRenderingHandler Icon shrubBranch = ((BlockBOPFoliage)Blocks.foliage.get()).shrubBranch; tessellator.setColorOpaque_F(par4 * par5, par4 * par6, par4 * par7); - renderCrossedSquaresFromIcon(shrubLeaf, par1, par2, par3, par4, renderer); + RenderUtils.renderCrossedSquaresFromIcon(shrubLeaf, par1, par2, par3, par4, renderer); tessellator.setColorOpaque_F(par4, par4, par4); - renderCrossedSquaresFromIcon(shrubBranch, par1, par2, par3, par4, renderer); - } - - private static void renderCrossedSquaresFromIcon(Icon icon, double par3, double par5, double par7, float par9, RenderBlocks renderer) - { - Tessellator tessellator = Tessellator.instance; - - if (renderer.hasOverrideBlockTexture()) - { - icon = renderer.overrideBlockTexture; - } - - double d3 = (double)icon.getMinU(); - double d4 = (double)icon.getMinV(); - double d5 = (double)icon.getMaxU(); - double d6 = (double)icon.getMaxV(); - double d7 = 0.45D * (double)par9; - double d8 = par3 + 0.5D - d7; - double d9 = par3 + 0.5D + d7; - double d10 = par7 + 0.5D - d7; - double d11 = par7 + 0.5D + d7; - tessellator.addVertexWithUV(d8, par5 + (double)par9, d10, d3, d4); - tessellator.addVertexWithUV(d8, par5 + 0.0D, d10, d3, d6); - tessellator.addVertexWithUV(d9, par5 + 0.0D, d11, d5, d6); - tessellator.addVertexWithUV(d9, par5 + (double)par9, d11, d5, d4); - tessellator.addVertexWithUV(d9, par5 + (double)par9, d11, d3, d4); - tessellator.addVertexWithUV(d9, par5 + 0.0D, d11, d3, d6); - tessellator.addVertexWithUV(d8, par5 + 0.0D, d10, d5, d6); - tessellator.addVertexWithUV(d8, par5 + (double)par9, d10, d5, d4); - tessellator.addVertexWithUV(d8, par5 + (double)par9, d11, d3, d4); - tessellator.addVertexWithUV(d8, par5 + 0.0D, d11, d3, d6); - tessellator.addVertexWithUV(d9, par5 + 0.0D, d10, d5, d6); - tessellator.addVertexWithUV(d9, par5 + (double)par9, d10, d5, d4); - tessellator.addVertexWithUV(d9, par5 + (double)par9, d10, d3, d4); - tessellator.addVertexWithUV(d9, par5 + 0.0D, d10, d3, d6); - tessellator.addVertexWithUV(d8, par5 + 0.0D, d11, d5, d6); - tessellator.addVertexWithUV(d8, par5 + (double)par9, d11, d5, d4); + RenderUtils.renderCrossedSquaresFromIcon(shrubBranch, par1, par2, par3, par4, renderer); } } diff --git a/common/biomesoplenty/blocks/renderers/PlantsRenderer.java b/common/biomesoplenty/blocks/renderers/PlantsRenderer.java index 4613e7107..abd8abe8f 100644 --- a/common/biomesoplenty/blocks/renderers/PlantsRenderer.java +++ b/common/biomesoplenty/blocks/renderers/PlantsRenderer.java @@ -5,6 +5,8 @@ import net.minecraft.client.renderer.EntityRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; +import biomesoplenty.api.Blocks; +import biomesoplenty.blocks.BlockBOPPlant; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; public class PlantsRenderer implements ISimpleBlockRenderingHandler @@ -42,7 +44,9 @@ public class PlantsRenderer implements ISimpleBlockRenderingHandler if (meta == 13) return renderer.renderBlockCrops(block, x, y, z); if (meta == 14) + { return renderCrossedSquares(block, x, y, z, renderer, false); + } } return true; } @@ -118,7 +122,17 @@ public class PlantsRenderer implements ISimpleBlockRenderingHandler d1 += ((i1 >> 20 & 15L) / 15.0F - 1.0D) * 0.2D; d2 += ((i1 >> 24 & 15L) / 15.0F - 0.5D) * 0.5D; - renderer.drawCrossedSquares(par1Block, renderer.blockAccess.getBlockMetadata(par2, par3, par4), d0, d1, d2, 1.0F); + int meta = renderer.blockAccess.getBlockMetadata(par2, par3, par4); + + if (meta == 14) + { + renderer.drawCrossedSquares(par1Block, meta, d0, d1, d2, 1.0F); + RenderUtils.renderCrossedSquaresFromIcon(((BlockBOPPlant)Blocks.plants.get()).reedbottom, d0, d1 - 1, d2, 1.0F, renderer); + } + else + { + renderer.drawCrossedSquares(par1Block, meta, d0, d1, d2, 1.0F); + } return true; } } diff --git a/common/biomesoplenty/blocks/renderers/RenderUtils.java b/common/biomesoplenty/blocks/renderers/RenderUtils.java index 644766762..7134ba0b1 100644 --- a/common/biomesoplenty/blocks/renderers/RenderUtils.java +++ b/common/biomesoplenty/blocks/renderers/RenderUtils.java @@ -51,6 +51,42 @@ public class RenderUtils GL11.glTranslatef(0.5F, 0.5F, 0.5F); } + public static void renderCrossedSquaresFromIcon(Icon icon, double par3, double par5, double par7, float par9, RenderBlocks renderer) + { + Tessellator tessellator = Tessellator.instance; + + if (renderer.hasOverrideBlockTexture()) + { + icon = renderer.overrideBlockTexture; + } + + double d3 = (double)icon.getMinU(); + double d4 = (double)icon.getMinV(); + double d5 = (double)icon.getMaxU(); + double d6 = (double)icon.getMaxV(); + double d7 = 0.45D * (double)par9; + double d8 = par3 + 0.5D - d7; + double d9 = par3 + 0.5D + d7; + double d10 = par7 + 0.5D - d7; + double d11 = par7 + 0.5D + d7; + tessellator.addVertexWithUV(d8, par5 + (double)par9, d10, d3, d4); + tessellator.addVertexWithUV(d8, par5 + 0.0D, d10, d3, d6); + tessellator.addVertexWithUV(d9, par5 + 0.0D, d11, d5, d6); + tessellator.addVertexWithUV(d9, par5 + (double)par9, d11, d5, d4); + tessellator.addVertexWithUV(d9, par5 + (double)par9, d11, d3, d4); + tessellator.addVertexWithUV(d9, par5 + 0.0D, d11, d3, d6); + tessellator.addVertexWithUV(d8, par5 + 0.0D, d10, d5, d6); + tessellator.addVertexWithUV(d8, par5 + (double)par9, d10, d5, d4); + tessellator.addVertexWithUV(d8, par5 + (double)par9, d11, d3, d4); + tessellator.addVertexWithUV(d8, par5 + 0.0D, d11, d3, d6); + tessellator.addVertexWithUV(d9, par5 + 0.0D, d10, d5, d6); + tessellator.addVertexWithUV(d9, par5 + (double)par9, d10, d5, d4); + tessellator.addVertexWithUV(d9, par5 + (double)par9, d10, d3, d4); + tessellator.addVertexWithUV(d9, par5 + 0.0D, d10, d3, d6); + tessellator.addVertexWithUV(d8, par5 + 0.0D, d11, d5, d6); + tessellator.addVertexWithUV(d8, par5 + (double)par9, d11, d5, d4); + } + public static boolean renderFace(RenderBlocks renderer, Block block, Icon icon, IBlockAccess world, int x, int y, int z, ForgeDirection face) { return renderFace(renderer, block, icon, world, x, y, z, -1, face);