package net.tropicraft.client.renderer.block; import net.minecraft.block.Block; import net.minecraft.client.renderer.EntityRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.tropicraft.block.BlockTropicraftFlowerPot; import net.tropicraft.block.tileentity.TileEntityTropicraftFlowerPot; import net.tropicraft.info.TCRenderIDs; import net.tropicraft.registry.TCBlockRegistry; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; public class FlowerPotRenderHandler implements ISimpleBlockRenderingHandler { @Override public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { } @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { renderFlowerPot(world, x, y, z, (BlockTropicraftFlowerPot)block, renderer); return true; } @Override public boolean shouldRender3DInInventory(int modelId) { return false; } @Override public int getRenderId() { return TCRenderIDs.flowerPot; } private void renderFlowerPot(IBlockAccess world, int x, int y, int z, BlockTropicraftFlowerPot block, RenderBlocks rb) { rb.renderStandardBlock(block, x, y, z); Tessellator tessellator = Tessellator.instance; tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); float f = 1.0F; int l = block.colorMultiplier(world, x, y, z); IIcon icon = rb.getBlockIconFromSide(block, 0); float f1 = (float)(l >> 16 & 255) / 255.0F; float f2 = (float)(l >> 8 & 255) / 255.0F; float f3 = (float)(l & 255) / 255.0F; float f4; float f5; if (EntityRenderer.anaglyphEnable) { f4 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F; float f6 = (f1 * 30.0F + f2 * 70.0F) / 100.0F; f5 = (f1 * 30.0F + f3 * 70.0F) / 100.0F; f1 = f4; f2 = f6; f3 = f5; } tessellator.setColorOpaque_F(f * f1, f * f2, f * f3); f4 = 0.1865F; rb.renderFaceXPos(block, (double)((float)x - 0.5F + f4), (double)y, (double)z, icon); rb.renderFaceXNeg(block, (double)((float)x + 0.5F - f4), (double)y, (double)z, icon); rb.renderFaceZPos(block, (double)x, (double)y, (double)((float)z - 0.5F + f4), icon); rb.renderFaceZNeg(block, (double)x, (double)y, (double)((float)z + 0.5F - f4), icon); rb.renderFaceYPos(block, (double)x, (double)((float)y - 0.5F + f4 + 0.1875F), (double)z, rb.getBlockIcon(Blocks.dirt)); TileEntityTropicraftFlowerPot te = (TileEntityTropicraftFlowerPot)world.getTileEntity(x, y, z); if (te == null) return; int var19 = te.getFlowerID(); if (var19 != 0) { f5 = 0.0F; float var15 = 4.0F; float var16 = 0.0F; tessellator.addTranslation(f5 / 16.0F, var15 / 16.0F, var16 / 16.0F); if (var19 > 0 && var19 < 17) { rb.drawCrossedSquares(draw(TCBlockRegistry.flowers, var19 - 1), (double)x, (double)y, (double)z, 0.75F); } else if (var19 == 17) { rb.drawCrossedSquares(draw(TCBlockRegistry.tallFlowers, 0), (double)x, (double)y, (double)z, 0.75F); rb.drawCrossedSquares(draw(TCBlockRegistry.tallFlowers, 1), (double)x, (double)(y + 0.75), (double)z, 0.75F); } else if (var19 == 18) { rb.drawCrossedSquares(draw(TCBlockRegistry.pineapple, 7), (double)x, (double)y, (double)z, 0.75F); rb.drawCrossedSquares(draw(TCBlockRegistry.pineapple, 8), (double)x, (double)(y + 0.75), (double)z, 0.75F); } else if (var19 > 18 && var19 < 25) { rb.drawCrossedSquares(draw(TCBlockRegistry.saplings, var19 - 19), (double)x, (double)y, (double)z, 0.75F); } else if (var19 >= 25 && var19 < 34) { rb.drawCrossedSquares(draw(Blocks.red_flower, var19 - 25), (double)x, (double)y, (double)z, 0.75F); } else if (var19 == 34) { rb.drawCrossedSquares(draw(Blocks.yellow_flower, var19 - 34), (double)x, (double)y, (double)z, 0.75F); } tessellator.addTranslation(-f5 / 16.0F, -var15 / 16.0F, -var16 / 16.0F); } } private IIcon draw(Block block, int damage) { return block.getIcon(0, damage); } }