From 05c78126859231a68e199dc34613689bd0978e2f Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Mon, 11 Apr 2016 19:44:54 +0300 Subject: Initial commit --- ihl/model/RectifierTransformerUnitBlockRender.java | 414 +++++++++++++++++++++ 1 file changed, 414 insertions(+) create mode 100644 ihl/model/RectifierTransformerUnitBlockRender.java (limited to 'ihl/model/RectifierTransformerUnitBlockRender.java') diff --git a/ihl/model/RectifierTransformerUnitBlockRender.java b/ihl/model/RectifierTransformerUnitBlockRender.java new file mode 100644 index 0000000..081db7a --- /dev/null +++ b/ihl/model/RectifierTransformerUnitBlockRender.java @@ -0,0 +1,414 @@ +package ihl.model; + +import ic2.api.tile.IWrenchable; +import ihl.items_blocks.MachineBaseBlock; +import ihl.utils.IHLRenderUtils; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class RectifierTransformerUnitBlockRender implements ISimpleBlockRenderingHandler +{ + public static int renderId; + + public RectifierTransformerUnitBlockRender() + { + renderId = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public int getRenderId() + { + return renderId; + } + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderblocks) + { + Tessellator tessellator = Tessellator.instance; + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + tessellator.startDrawingQuads(); + for(int i=0;i<=43;i++) + { + this.setBounds(i, renderblocks, block); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, 0)); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderblocks.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, 0)); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, 0)); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, 0)); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, 0)); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, 0)); + } + + + this.setBounds(44, renderblocks, block); + renderblocks.renderFaceXNeg(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceXPos(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceZNeg(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceZPos(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceYNeg(block,0, 0, 0, block.getIcon(5, 0)); + + this.setBounds(45, renderblocks, block); + renderblocks.renderFaceXNeg(block,0, 0, 0, block.getIcon(5, 0)); + renderblocks.renderFaceXPos(block,0, 0, 0, block.getIcon(5, 0)); + renderblocks.renderFaceZNeg(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceZPos(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceYNeg(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceYPos(block,0, 0, 0, block.getIcon(0, 0)); + + this.setBounds(46, renderblocks, block); + renderblocks.renderFaceXNeg(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceXPos(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceZNeg(block,0, 0, 0, block.getIcon(5, 0)); + renderblocks.renderFaceZPos(block,0, 0, 0, block.getIcon(5, 0)); + renderblocks.renderFaceYNeg(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceYPos(block,0, 0, 0, block.getIcon(0, 0)); + + this.setBounds(47, renderblocks, block); + renderblocks.renderFaceXNeg(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceXPos(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceZNeg(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceZPos(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceYNeg(block,0, 0, 0, block.getIcon(0, 0)); + renderblocks.renderFaceYPos(block,0, 0, 0, block.getIcon(4, 0)); + + + IHLRenderUtils.instance.setPosition(0, 0, 0); + IHLRenderUtils.instance.setRotationPoint(0F, 16F, 0F); + IHLRenderUtils.instance.setRotation(0F, 0f, 0F); + + IIcon icon = block.getIcon(1, 0); + IHLRenderUtils.instance.drawPipe(-6F, -14F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-6F, -12F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-6F, -10F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + IHLRenderUtils.instance.drawPipe(2F, -14F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(2F, -12F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(2F, -10F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + icon = block.getIcon(2, 0); + IHLRenderUtils.instance.drawPipe(-4.5F, -16F, -0.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + icon = block.getIcon(3, 0); + IHLRenderUtils.instance.drawPipe(3.5F, -16F, -0.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + + tessellator.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + renderblocks.clearOverrideBlockTexture(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess blockAccess, int x, int y, int z, Block block, int meta, RenderBlocks renderblocks) + { + Tessellator var5 = Tessellator.instance; + var5.setBrightness(block.getMixedBrightnessForBlock(blockAccess, x, y, z)); + int var6 = block.colorMultiplier(blockAccess, x, y, z); + float var7 = (var6 >> 16 & 255) / 255.0F; + float var8 = (var6 >> 8 & 255) / 255.0F; + float var9 = (var6 & 255) / 255.0F; + var5.setColorOpaque_F(var7, var8, var9); + for(int i=0;i<=43;i++) + { + this.setBounds(i, renderblocks, block); + renderblocks.renderStandardBlock(block, x, y, z); + } + + this.setBounds(44, renderblocks, block); + renderblocks.renderFaceXNeg(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceXPos(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceZNeg(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceZPos(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceYNeg(block, x, y, z, block.getIcon(5, 0)); + + this.setBounds(45, renderblocks, block); + renderblocks.renderFaceXNeg(block, x, y, z, block.getIcon(5, 0)); + renderblocks.renderFaceXPos(block, x, y, z, block.getIcon(5, 0)); + renderblocks.renderFaceZNeg(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceZPos(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceYNeg(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceYPos(block, x, y, z, block.getIcon(0, 0)); + + this.setBounds(46, renderblocks, block); + renderblocks.renderFaceXNeg(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceXPos(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceZNeg(block, x, y, z, block.getIcon(5, 0)); + renderblocks.renderFaceZPos(block, x, y, z, block.getIcon(5, 0)); + renderblocks.renderFaceYNeg(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceYPos(block, x, y, z, block.getIcon(0, 0)); + + this.setBounds(47, renderblocks, block); + renderblocks.renderFaceXNeg(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceXPos(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceZNeg(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceZPos(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceYNeg(block, x, y, z, block.getIcon(0, 0)); + renderblocks.renderFaceYPos(block, x, y, z, block.getIcon(4, 0)); + + IHLRenderUtils.instance.setPosition(x, y, z); + IHLRenderUtils.instance.setRotationPoint(0F, 16F, 0F); + IHLRenderUtils.instance.setRotation(0F, 0f, 0F); + + IIcon icon = block.getIcon(1, 0); + + TileEntity tile = blockAccess.getTileEntity(x, y, z); + if(tile!=null && tile.getWorldObj() != null) + { + switch (((IWrenchable)tile).getFacing()) + { + case 2: + IHLRenderUtils.instance.drawPipe(-6F, -14F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-6F, -12F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-6F, -10F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + IHLRenderUtils.instance.drawPipe(2F, -14F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(2F, -12F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(2F, -10F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + icon = block.getIcon(2, 0); + IHLRenderUtils.instance.drawPipe(-4.5F, -16F, -0.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + icon = block.getIcon(3, 0); + IHLRenderUtils.instance.drawPipe(3.5F, -16F, -0.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + break; + case 5: + IHLRenderUtils.instance.drawPipe(-2F, -14F, -6F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-2F, -12F, -6F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-2F, -10F, -6F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + IHLRenderUtils.instance.drawPipe(-2F, -14F, 2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-2F, -12F, 2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-2F, -10F, 2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + icon = block.getIcon(2, 0); + IHLRenderUtils.instance.drawPipe(-0.5F, -16F, -4.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + icon = block.getIcon(3, 0); + IHLRenderUtils.instance.drawPipe(-0.5F, -16F, 3.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + break; + case 3: + IHLRenderUtils.instance.drawPipe(-6F, -14F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-6F, -12F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-6F, -10F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + IHLRenderUtils.instance.drawPipe(2F, -14F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(2F, -12F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(2F, -10F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + icon = block.getIcon(3, 0); + IHLRenderUtils.instance.drawPipe(-4.5F, -16F, -0.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + icon = block.getIcon(2, 0); + IHLRenderUtils.instance.drawPipe(3.5F, -16F, -0.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + break; + case 4: + IHLRenderUtils.instance.drawPipe(-2F, -14F, -6F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-2F, -12F, -6F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-2F, -10F, -6F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + IHLRenderUtils.instance.drawPipe(-2F, -14F, 2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-2F, -12F, 2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-2F, -10F, 2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + icon = block.getIcon(3, 0); + IHLRenderUtils.instance.drawPipe(-0.5F, -16F, -4.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + icon = block.getIcon(2, 0); + IHLRenderUtils.instance.drawPipe(-0.5F, -16F, 3.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + break; + default: + IHLRenderUtils.instance.drawPipe(-6F, -14F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-6F, -12F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(-6F, -10F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + IHLRenderUtils.instance.drawPipe(2F, -14F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(2F, -12F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + IHLRenderUtils.instance.drawPipe(2F, -10F, -2F, 4, 2, 4, 0f, 0.5f,ForgeDirection.UP,icon); + + icon = block.getIcon(2, 0); + IHLRenderUtils.instance.drawPipe(-4.5F, -16F, -0.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + icon = block.getIcon(3, 0); + IHLRenderUtils.instance.drawPipe(3.5F, -16F, -0.5F, 1, 2, 1, 0f, 1f, ForgeDirection.UP,icon); + break; + } + } + return true; + } + + private void setBounds(int index, RenderBlocks renderblocks, Block block) + { + double rt = 1/11d; + switch(index) + { + case 0: + renderblocks.setRenderBounds(rt, 0d, 0d, rt*2, 1d, rt); + break; + case 1: + renderblocks.setRenderBounds(rt*3, rt*8, 0d, rt*4, 1d, rt); + break; + case 2: + renderblocks.setRenderBounds(rt*5, rt*8, 0d, rt*6, 1d, rt); + break; + case 3: + renderblocks.setRenderBounds(rt*7, rt*8, 0d, rt*8, 1d, rt); + break; + case 4: + renderblocks.setRenderBounds(rt*3, 0d, 0d, rt*4, rt*3, rt); + break; + case 5: + renderblocks.setRenderBounds(rt*5, 0d, 0d, rt*6, rt*3, rt); + break; + case 6: + renderblocks.setRenderBounds(rt*7, 0d, 0d, rt*8, rt*3, rt); + break; + case 7: + renderblocks.setRenderBounds(rt*9, 0d, 0d, rt*10, 1d, rt); + break; + + case 8: + renderblocks.setRenderBounds(rt, 0d, rt*10, rt*2, 1d, 1d); + break; + case 9: + renderblocks.setRenderBounds(rt*3, rt*8, rt*10, rt*4, 1d, 1d); + break; + case 10: + renderblocks.setRenderBounds(rt*5, rt*8, rt*10, rt*6, 1d, 1d); + break; + case 11: + renderblocks.setRenderBounds(rt*7, rt*8, rt*10, rt*8, 1d, 1d); + break; + case 12: + renderblocks.setRenderBounds(rt*3, 0d, rt*10, rt*4, rt*3, 1d); + break; + case 13: + renderblocks.setRenderBounds(rt*5, 0d, rt*10, rt*6, rt*3, 1d); + break; + case 14: + renderblocks.setRenderBounds(rt*7, 0d, rt*10, rt*8, rt*3, 1d); + break; + case 15: + renderblocks.setRenderBounds(rt*9, 0d, rt*10, rt*10, 1d, 1d); + break; + + case 16: + renderblocks.setRenderBounds(0d, 0d, rt, rt, 1d, rt*2); + break; + case 17: + renderblocks.setRenderBounds(0d,rt*8, rt*3,rt,1d, rt*4); + break; + case 18: + renderblocks.setRenderBounds(0d,rt*8, rt*5,rt, 1d, rt*6); + break; + case 19: + renderblocks.setRenderBounds(0d,rt*8, rt*7,rt,1d, rt*8); + break; + case 20: + renderblocks.setRenderBounds(0d,0d, rt*3, rt, rt*3,rt*4); + break; + case 21: + renderblocks.setRenderBounds(0d,0d, rt*5,rt, rt*3, rt*6); + break; + case 22: + renderblocks.setRenderBounds(0d,0d, rt*7, rt,rt*3, rt*8); + break; + case 23: + renderblocks.setRenderBounds(0d,0d, rt*9,rt,1d, rt*10); + break; + + case 24: + renderblocks.setRenderBounds(rt*10, 0d, rt, 1d, 1d, rt*2); + break; + case 25: + renderblocks.setRenderBounds(rt*10, rt*8, rt*3, 1d, 1d, rt*4); + break; + case 26: + renderblocks.setRenderBounds(rt*10, rt*8, rt*5,1d, 1d, rt*6); + break; + case 27: + renderblocks.setRenderBounds(rt*10, rt*8, rt*7, 1d, 1d, rt*8); + break; + case 28: + renderblocks.setRenderBounds(rt*10, 0d, rt*3, 1d, rt*3, rt*4); + break; + case 29: + renderblocks.setRenderBounds(rt*10, 0d, rt*5,1d, rt*3, rt*6); + break; + case 30: + renderblocks.setRenderBounds(rt*10, 0d, rt*7,1d, rt*3, rt*8); + break; + case 31: + renderblocks.setRenderBounds(rt*10, 0d, rt*9, 1d, 1d, rt*10); + break; + + case 32: + renderblocks.setRenderBounds(rt, 0d, rt*3, rt*3, rt, rt*4); + break; + case 33: + renderblocks.setRenderBounds(rt, 0d, rt*5, rt*3, rt, rt*6); + break; + case 34: + renderblocks.setRenderBounds(rt, 0d, rt*7, rt*3, rt, rt*8); + break; + case 35: + renderblocks.setRenderBounds(rt*8, 0d, rt*3, rt*10, rt, rt*4); + break; + case 36: + renderblocks.setRenderBounds(rt*8, 0d, rt*5, rt*10, rt, rt*6); + break; + case 37: + renderblocks.setRenderBounds(rt*8, 0d, rt*7, rt*10, rt, rt*8); + break; + + case 38: + renderblocks.setRenderBounds(rt*3, 0d, rt, rt*4, rt, rt*3); + break; + case 39: + renderblocks.setRenderBounds(rt*5, 0d, rt, rt*6, rt, rt*3); + break; + case 40: + renderblocks.setRenderBounds(rt*7, 0d, rt, rt*8, rt, rt*3); + break; + case 41: + renderblocks.setRenderBounds(rt*3, 0d, rt*8, rt*4, rt, rt*10); + break; + case 42: + renderblocks.setRenderBounds(rt*5, 0d, rt*8, rt*6, rt, rt*10); + break; + case 43: + renderblocks.setRenderBounds(rt*7, 0d, rt*8, rt*8, rt, rt*10); + break; + + case 44: + renderblocks.setRenderBounds(rt*3, 0d, rt*3, rt*8, rt, rt*8); + break; + + case 45: + renderblocks.setRenderBounds(0d, rt*3, rt*3, 1d, rt*8, rt*8); + break; + + case 46: + renderblocks.setRenderBounds(rt*3, rt*3, 0d, rt*8, rt*8, 1d); + break; + + case 47: + renderblocks.setRenderBounds(rt, rt, rt, rt*10, 1d, rt*10); + break; + + } + } + + @Override + public boolean shouldRender3DInInventory(int arg0) + { + return true; + } +} -- cgit v1.2.3