package net.anvilcraft.thaummach.render.apparatus.apparati.metal; import net.anvilcraft.thaummach.blocks.BlockApparatusMetal; import net.anvilcraft.thaummach.render.apparatus.IApparatusRenderer; import net.anvilcraft.thaummach.tiles.TileBore; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import thaumcraft.client.renderers.block.BlockRenderer; public class BoreApparatusRenderer implements IApparatusRenderer { public static final BoreApparatusRenderer INSTANCE = new BoreApparatusRenderer(); @Override public void renderApparatus( IBlockAccess w, RenderBlocks rb, int i, int j, int k, Block block_, int meta, boolean inv ) { BlockApparatusMetal block = (BlockApparatusMetal) block_; boolean b1 = false; boolean b2 = false; boolean b3 = false; if (!inv) { TileBore te = (TileBore) w.getTileEntity(i, j, k); if (te.orientation == 0 || te.orientation == 1) { b1 = true; } if (te.orientation == 4 || te.orientation == 5) { b2 = true; } if (te.orientation == 2 || te.orientation == 3) { b3 = true; } } float t2x = 0.125F; float t4x = 0.25F; IIcon t1 = block.iconGenerator3; IIcon t2 = block.iconGenerator2; IIcon tx = block.iconGenerator3; rb.overrideBlockTexture = tx; rb.setRenderBounds(t2x, t2x, t2x, 1.0F - t2x, 1.0F - t2x, 1.0F - t2x); if (inv) { BlockRenderer.drawFaces(rb, block, t1, true); } else { rb.renderStandardBlock(block, i, j, k); } if (b1) { tx = t2; } else { tx = t1; } rb.overrideBlockTexture = tx; rb.setRenderBounds(t4x, 0.0F, t4x, 1.0F - t4x, t2x, 1.0F - t4x); if (inv) { BlockRenderer.drawFaces(rb, block, tx, true); } else { rb.renderStandardBlock(block, i, j, k); } rb.setRenderBounds(t4x, 1.0F - t2x, t4x, 1.0F - t4x, 1.0F, 1.0F - t4x); if (inv) { BlockRenderer.drawFaces(rb, block, tx, true); } else { rb.renderStandardBlock(block, i, j, k); } if (b2) { tx = t2; } else { tx = t1; } rb.overrideBlockTexture = tx; rb.setRenderBounds(0.0F, t4x, t4x, t2x, 1.0F - t4x, 1.0F - t4x); if (inv) { BlockRenderer.drawFaces(rb, block, tx, true); } else { rb.renderStandardBlock(block, i, j, k); } rb.setRenderBounds(1.0F - t2x, t4x, t4x, 1.0F, 1.0F - t4x, 1.0F - t4x); if (inv) { BlockRenderer.drawFaces(rb, block, tx, true); } else { rb.renderStandardBlock(block, i, j, k); } if (b3) { tx = t2; } else { tx = t1; } rb.overrideBlockTexture = tx; rb.setRenderBounds(t4x, t4x, 0.0F, 1.0F - t4x, 1.0F - t4x, t2x); if (inv) { BlockRenderer.drawFaces(rb, block, tx, true); } else { rb.renderStandardBlock(block, i, j, k); } rb.setRenderBounds(t4x, t4x, 1.0F - t2x, 1.0F - t4x, 1.0F - t4x, 1.0F); if (inv) { BlockRenderer.drawFaces(rb, block, tx, true); } else { rb.renderStandardBlock(block, i, j, k); } rb.overrideBlockTexture = null; rb.setRenderBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } }