// Date: 20-12-2013 15:09:04 // Template version 1.1 // Java generated by Techne // Keep in mind that you still need to fill in some blanks // - ZeuX package pneumaticCraft.client.model; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.Entity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; import pneumaticCraft.client.util.RenderUtils; import pneumaticCraft.common.tileentity.TileEntityElevatorBase; import pneumaticCraft.common.util.PneumaticCraftUtils; import pneumaticCraft.lib.Textures; public class ModelElevatorBase extends ModelBase implements IBaseModel{ //fields ModelRenderer Base; ModelRenderer Pole1; ModelRenderer Pole2; ModelRenderer Pole3; ModelRenderer Pole4; ModelRenderer Floor; ModelRenderer Pole5; ModelRenderer TopSupport1; ModelRenderer TopSupport2; ModelRenderer TopSupport3; ModelRenderer TopSupport4; ModelRenderer Support1; ModelRenderer Support2; ModelRenderer Support3; ModelRenderer Support4; ModelRenderer Support5; ModelRenderer Support6; ModelRenderer Support7; ModelRenderer Support8; ModelRenderer PipeLeft1; ModelRenderer PipeLeft2; ModelRenderer PipeLeft3; ModelRenderer PipeLeft4; ModelRenderer PipeRight1; ModelRenderer PipeRight2; ModelRenderer PipeRight3; ModelRenderer PipeRight4; ModelRenderer PipeFront1; ModelRenderer PipeFront2; ModelRenderer PipeFront3; ModelRenderer PipeFront4; ModelRenderer PipeBack1; ModelRenderer PipeBack2; ModelRenderer PipeBack3; ModelRenderer PipeBack4; public ModelElevatorBase(){ textureWidth = 64; textureHeight = 64; Base = new ModelRenderer(this, 0, 0); Base.addBox(0F, 0F, 0F, 16, 1, 16); Base.setRotationPoint(-8F, 23F, -8F); Base.setTextureSize(64, 64); Base.mirror = true; setRotation(Base, 0F, 0F, 0F); Pole1 = new ModelRenderer(this, 0, 17); Pole1.addBox(0F, 0F, 0F, 2, 14, 2); Pole1.setRotationPoint(-1F, 9F, -1F); Pole1.setTextureSize(64, 64); Pole1.mirror = true; setRotation(Pole1, 0F, 0F, 0F); Pole2 = new ModelRenderer(this, 0, 17); Pole2.addBox(0F, 0F, 0F, 4, 14, 4); Pole2.setRotationPoint(-2F, 9F, -2F); Pole2.setTextureSize(64, 64); Pole2.mirror = true; setRotation(Pole2, 0F, 0F, 0F); Pole3 = new ModelRenderer(this, 0, 17); Pole3.addBox(0F, 0F, 0F, 6, 14, 6); Pole3.setRotationPoint(-3F, 9F, -3F); Pole3.setTextureSize(64, 64); Pole3.mirror = true; setRotation(Pole3, 0F, 0F, 0F); Pole4 = new ModelRenderer(this, 0, 17); Pole4.addBox(0F, 0F, 0F, 8, 14, 8); Pole4.setRotationPoint(-4F, 9F, -4F); Pole4.setTextureSize(64, 64); Pole4.mirror = true; setRotation(Pole4, 0F, 0F, 0F); Floor = new ModelRenderer(this, 0, 0); Floor.addBox(0F, 0F, 0F, 16, 1, 16); Floor.setRotationPoint(-8F, 8F, -8F); Floor.setTextureSize(64, 64); Floor.mirror = true; setRotation(Floor, 0F, 0F, 0F); Pole5 = new ModelRenderer(this, 0, 17); Pole5.addBox(0F, 0F, 0F, 10, 14, 10); Pole5.setRotationPoint(-5F, 9F, -5F); Pole5.setTextureSize(64, 64); Pole5.mirror = true; setRotation(Pole5, 0F, 0F, 0F); TopSupport1 = new ModelRenderer(this, 0, 0); TopSupport1.addBox(0F, 0F, 0F, 2, 1, 16); TopSupport1.setRotationPoint(6F, 9F, -8F); TopSupport1.setTextureSize(64, 64); TopSupport1.mirror = true; setRotation(TopSupport1, 0F, 0F, 0F); TopSupport2 = new ModelRenderer(this, 0, 0); TopSupport2.addBox(0F, 0F, 0F, 2, 1, 16); TopSupport2.setRotationPoint(-8F, 9F, -8F); TopSupport2.setTextureSize(64, 64); TopSupport2.mirror = true; setRotation(TopSupport2, 0F, 0F, 0F); TopSupport3 = new ModelRenderer(this, 0, 57); TopSupport3.addBox(0F, 0F, 0F, 12, 1, 2); TopSupport3.setRotationPoint(-6F, 9F, -8F); TopSupport3.setTextureSize(64, 64); TopSupport3.mirror = true; setRotation(TopSupport3, 0F, 0F, 0F); TopSupport4 = new ModelRenderer(this, 0, 57); TopSupport4.addBox(0F, 0F, 0F, 12, 1, 2); TopSupport4.setRotationPoint(-6F, 9F, 6F); TopSupport4.setTextureSize(64, 64); TopSupport4.mirror = true; setRotation(TopSupport4, 0F, 0F, 0F); Support1 = new ModelRenderer(this, 40, 17); Support1.addBox(0F, 0F, 0F, 1, 15, 1); Support1.setRotationPoint(6.8F, 9F, -1F); Support1.setTextureSize(64, 64); Support1.mirror = true; setRotation(Support1, -0.3490659F, 0F, 0F); Support2 = new ModelRenderer(this, 40, 17); Support2.addBox(0F, 0F, 0F, 1, 15, 1); Support2.setRotationPoint(-7F, 9F, -1F); Support2.setTextureSize(64, 64); Support2.mirror = true; setRotation(Support2, -0.3490659F, 0F, 0F); Support3 = new ModelRenderer(this, 40, 17); Support3.addBox(0F, 0F, 0F, 1, 15, 1); Support3.setRotationPoint(6F, 9.8F, 0.3F); Support3.setTextureSize(64, 64); Support3.mirror = true; setRotation(Support3, 0.3490659F, 0F, 0F); Support4 = new ModelRenderer(this, 40, 17); Support4.addBox(0F, 0F, 0F, 1, 15, 1); Support4.setRotationPoint(-7.8F, 9.8F, 0.3F); Support4.setTextureSize(64, 64); Support4.mirror = true; setRotation(Support4, 0.3490659F, 0F, 0F); Support5 = new ModelRenderer(this, 40, 17); Support5.addBox(0F, 0F, 0F, 1, 15, 1); Support5.setRotationPoint(0.3F, 9.8F, 6.8F); Support5.setTextureSize(64, 64); Support5.mirror = true; setRotation(Support5, 0F, 0F, -0.3490659F); Support6 = new ModelRenderer(this, 40, 17); Support6.addBox(0F, 0F, 0F, 1, 15, 1); Support6.setRotationPoint(0.3F, 9.8F, -7F); Support6.setTextureSize(64, 64); Support6.mirror = true; setRotation(Support6, 0F, 0F, -0.3490659F); Support7 = new ModelRenderer(this, 40, 17); Support7.addBox(0F, 0F, 0F, 1, 15, 1); Support7.setRotationPoint(-1F, 9F, 6F); Support7.setTextureSize(64, 64); Support7.mirror = true; setRotation(Support7, 0F, 0F, 0.3490659F); Support8 = new ModelRenderer(this, 40, 17); Support8.addBox(0F, 0F, 0F, 1, 15, 1); Support8.setRotationPoint(-1F, 9F, -7.8F); Support8.setTextureSize(64, 64); Support8.mirror = true; setRotation(Support8, 0F, 0F, 0.3490659F); PipeLeft1 = new ModelRenderer(this, 54, 17); PipeLeft1.addBox(0F, 0F, 0F, 3, 1, 2); PipeLeft1.setRotationPoint(5F, 17F, -1F); PipeLeft1.setTextureSize(64, 64); PipeLeft1.mirror = true; setRotation(PipeLeft1, 0F, 0F, 0F); PipeLeft2 = new ModelRenderer(this, 54, 17); PipeLeft2.addBox(0F, 0F, 0F, 3, 1, 2); PipeLeft2.setRotationPoint(5F, 14F, -1F); PipeLeft2.setTextureSize(64, 64); PipeLeft2.mirror = true; setRotation(PipeLeft2, 0F, 0F, 0F); PipeLeft3 = new ModelRenderer(this, 54, 17); PipeLeft3.addBox(0F, 0F, 0F, 3, 2, 1); PipeLeft3.setRotationPoint(5F, 15F, -2F); PipeLeft3.setTextureSize(64, 64); PipeLeft3.mirror = true; setRotation(PipeLeft3, 0F, 0F, 0F); PipeLeft4 = new ModelRenderer(this, 54, 17); PipeLeft4.addBox(0F, 0F, 0F, 3, 2, 1); PipeLeft4.setRotationPoint(5F, 15F, 1F); PipeLeft4.setTextureSize(64, 64); PipeLeft4.mirror = true; setRotation(PipeLeft4, 0F, 0F, 0F); PipeRight1 = new ModelRenderer(this, 54, 17); PipeRight1.addBox(0F, 0F, 0F, 3, 1, 2); PipeRight1.setRotationPoint(-8F, 14F, -1F); PipeRight1.setTextureSize(64, 64); PipeRight1.mirror = true; setRotation(PipeRight1, 0F, 0F, 0F); PipeRight2 = new ModelRenderer(this, 54, 17); PipeRight2.addBox(0F, 0F, 0F, 3, 2, 1); PipeRight2.setRotationPoint(-8F, 15F, 1F); PipeRight2.setTextureSize(64, 64); PipeRight2.mirror = true; setRotation(PipeRight2, 0F, 0F, 0F); PipeRight3 = new ModelRenderer(this, 54, 17); PipeRight3.addBox(0F, 0F, 0F, 3, 1, 2); PipeRight3.setRotationPoint(-8F, 17F, -1F); PipeRight3.setTextureSize(64, 64); PipeRight3.mirror = true; setRotation(PipeRight3, 0F, 0F, 0F); PipeRight4 = new ModelRenderer(this, 54, 17); PipeRight4.addBox(0F, 0F, 0F, 3, 2, 1); PipeRight4.setRotationPoint(-8F, 15F, -2F); PipeRight4.setTextureSize(64, 64); PipeRight4.mirror = true; setRotation(PipeRight4, 0F, 0F, 0F); PipeFront1 = new ModelRenderer(this, 54, 17); PipeFront1.addBox(0F, 0F, 0F, 2, 1, 3); PipeFront1.setRotationPoint(-1F, 14F, -8F); PipeFront1.setTextureSize(64, 64); PipeFront1.mirror = true; setRotation(PipeFront1, 0F, 0F, 0F); PipeFront2 = new ModelRenderer(this, 54, 17); PipeFront2.addBox(0F, 0F, 0F, 2, 1, 3); PipeFront2.setRotationPoint(-1F, 17F, -8F); PipeFront2.setTextureSize(64, 64); PipeFront2.mirror = true; setRotation(PipeFront2, 0F, 0F, 0F); PipeFront3 = new ModelRenderer(this, 56, 17); PipeFront3.addBox(0F, 0F, 0F, 1, 2, 3); PipeFront3.setRotationPoint(-2F, 15F, -8F); PipeFront3.setTextureSize(64, 64); PipeFront3.mirror = true; setRotation(PipeFront3, 0F, 0F, 0F); PipeFront4 = new ModelRenderer(this, 56, 17); PipeFront4.addBox(0F, 0F, 0F, 1, 2, 3); PipeFront4.setRotationPoint(1F, 15F, -8F); PipeFront4.setTextureSize(64, 64); PipeFront4.mirror = true; setRotation(PipeFront4, 0F, 0F, 0F); PipeBack1 = new ModelRenderer(this, 54, 17); PipeBack1.addBox(0F, 0F, 0F, 2, 1, 3); PipeBack1.setRotationPoint(-1F, 14F, 5F); PipeBack1.setTextureSize(64, 64); PipeBack1.mirror = true; setRotation(PipeBack1, 0F, 0F, 0F); PipeBack2 = new ModelRenderer(this, 54, 17); PipeBack2.addBox(0F, 0F, 0F, 2, 1, 3); PipeBack2.setRotationPoint(-1F, 17F, 5F); PipeBack2.setTextureSize(64, 64); PipeBack2.mirror = true; setRotation(PipeBack2, 0F, 0F, 0F); PipeBack3 = new ModelRenderer(this, 56, 17); PipeBack3.addBox(0F, 0F, 0F, 1, 2, 3); PipeBack3.setRotationPoint(1F, 15F, 5F); PipeBack3.setTextureSize(64, 64); PipeBack3.mirror = true; setRotation(PipeBack3, 0F, 0F, 0F); PipeBack4 = new ModelRenderer(this, 56, 17); PipeBack4.addBox(0F, 0F, 0F, 1, 2, 3); PipeBack4.setRotationPoint(-2F, 15F, 5F); PipeBack4.setTextureSize(64, 64); PipeBack4.mirror = true; setRotation(PipeBack4, 0F, 0F, 0F); } @Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5){ super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); Base.render(f5); Pole1.render(f5); Pole2.render(f5); Pole3.render(f5); Pole4.render(f5); Floor.render(f5); Pole5.render(f5); TopSupport1.render(f5); TopSupport2.render(f5); TopSupport3.render(f5); TopSupport4.render(f5); Support1.render(f5); Support2.render(f5); Support3.render(f5); Support4.render(f5); Support5.render(f5); Support6.render(f5); Support7.render(f5); Support8.render(f5); PipeLeft1.render(f5); PipeLeft2.render(f5); PipeLeft3.render(f5); PipeLeft4.render(f5); PipeRight1.render(f5); PipeRight2.render(f5); PipeRight3.render(f5); PipeRight4.render(f5); PipeFront1.render(f5); PipeFront2.render(f5); PipeFront3.render(f5); PipeFront4.render(f5); PipeBack1.render(f5); PipeBack2.render(f5); PipeBack3.render(f5); PipeBack4.render(f5); } public void renderModel(float size, float extension, boolean[] sidesConnected, TileEntityElevatorBase te){ Base.render(size); Pole5.render(size); TopSupport1.render(size); TopSupport2.render(size); TopSupport3.render(size); TopSupport4.render(size); Support1.render(size); Support2.render(size); Support3.render(size); Support4.render(size); Support5.render(size); Support6.render(size); Support7.render(size); Support8.render(size); if(sidesConnected[ForgeDirection.EAST.ordinal()]) { PipeLeft1.render(size); PipeLeft2.render(size); PipeLeft3.render(size); PipeLeft4.render(size); } if(sidesConnected[ForgeDirection.WEST.ordinal()]) { PipeRight1.render(size); PipeRight2.render(size); PipeRight3.render(size); PipeRight4.render(size); } if(sidesConnected[ForgeDirection.SOUTH.ordinal()]) { PipeFront1.render(size); PipeFront2.render(size); PipeFront3.render(size); PipeFront4.render(size); } if(sidesConnected[ForgeDirection.NORTH.ordinal()]) { PipeBack1.render(size); PipeBack2.render(size); PipeBack3.render(size); PipeBack4.render(size); } float factor = 9F / 16; GL11.glTranslated(0, -extension / 4, 0); GL11.glPushMatrix(); GL11.glTranslated(0, factor, 0); GL11.glScaled(1, extension * 16 / 14 / 4, 1); GL11.glTranslated(0, -factor, 0); Pole4.render(size); GL11.glPopMatrix(); GL11.glTranslated(0, -extension / 4, 0); GL11.glPushMatrix(); GL11.glTranslated(0, factor, 0); GL11.glScaled(1, extension * 16 / 14 / 4, 1); GL11.glTranslated(0, -factor, 0); Pole3.render(size); GL11.glPopMatrix(); GL11.glTranslated(0, -extension / 4, 0); GL11.glPushMatrix(); GL11.glTranslated(0, factor, 0); GL11.glScaled(1, extension * 16 / 14 / 4, 1); GL11.glTranslated(0, -factor, 0); Pole2.render(size); GL11.glPopMatrix(); GL11.glTranslated(0, -extension / 4, 0); GL11.glPushMatrix(); GL11.glTranslated(0, factor, 0); GL11.glScaled(1, extension * 16 / 14 / 4, 1); GL11.glTranslated(0, -factor, 0); Pole1.render(size); GL11.glPopMatrix(); Floor.render(size); if(te != null && te.isCoreElevator() && te.baseCamo != null && te.getStackInSlot(4) != null && PneumaticCraftUtils.isRenderIDCamo(te.baseCamo.getRenderType())) { Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture); GL11.glRotated(180, 0, 0, 1); GL11.glTranslated(0.5, -8 / 16D + 0.0001, 0.5); GL11.glScaled(-1, 0, -1); RenderUtils.RenderInfo renderInfo = new RenderUtils.RenderInfo(0, 0, 0, 1, 1 / 16F, 1); renderInfo.setRenderSingleSide(1); renderInfo.baseBlock = te.baseCamo; renderInfo.setMeta(te.getStackInSlot(4).getItemDamage()); RenderUtils.INSTANCE.renderBlock(renderInfo, Minecraft.getMinecraft().theWorld, 0, 0, 0, te.xCoord, (int)Math.floor(te.yCoord + te.extension), te.zCoord, false, true); } } private void setRotation(ModelRenderer model, float x, float y, float z){ model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } @Override public void renderStatic(float size, TileEntity te){ } @Override public ResourceLocation getModelTexture(TileEntity tile){ return Textures.MODEL_ELEVATOR; } @Override public boolean rotateModelBasedOnBlockMeta(){ return false; } @Override public void renderDynamic(float size, TileEntity te, float partialTicks){ if(te instanceof TileEntityElevatorBase) { TileEntityElevatorBase tile = (TileEntityElevatorBase)te; renderModel(1 / 16F, tile.oldExtension + (tile.extension - tile.oldExtension) * partialTicks, tile.sidesConnected, tile); } else { renderModel(1 / 16F, 0, new boolean[]{false, false, false, false, false, false}, null); } } }