package mekanism.client.model; import mekanism.client.render.MekanismRenderer; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class ModelResistiveHeater extends ModelBase { public static ResourceLocation OVERLAY_ON = MekanismUtils.getResource(ResourceType.RENDER, "ResistiveHeater_OverlayOn.png"); public static ResourceLocation OVERLAY_OFF = MekanismUtils.getResource(ResourceType.RENDER, "ResistiveHeater_OverlayOff.png"); ModelRenderer wallLeft; ModelRenderer base; ModelRenderer fin10; ModelRenderer portRight; ModelRenderer fin9; ModelRenderer fin2; ModelRenderer bar2; ModelRenderer fin4; ModelRenderer fin3; ModelRenderer fin6; ModelRenderer center; ModelRenderer fin8; ModelRenderer fin7; ModelRenderer fin5; ModelRenderer fin1; ModelRenderer bar1; ModelRenderer bar4; ModelRenderer bar3; ModelRenderer wallRight; ModelRenderer portLeft; public ModelResistiveHeater() { textureWidth = 128; textureHeight = 64; wallLeft = new ModelRenderer(this, 0, 23); wallLeft.mirror = true; wallLeft.addBox(0F, 0F, 0F, 3, 9, 16); wallLeft.setRotationPoint(5F, 8F, -8F); wallLeft.setTextureSize(128, 64); setRotation(wallLeft, 0F, 0F, 0F); base = new ModelRenderer(this, 0, 0); base.addBox(0F, 0F, 0F, 16, 7, 16); base.setRotationPoint(-8F, 17F, -8F); base.setTextureSize(128, 64); base.mirror = true; setRotation(base, 0F, 0F, 0F); fin10 = new ModelRenderer(this, 38, 38); fin10.mirror = true; fin10.addBox(0F, 0F, 0F, 10, 9, 1); fin10.setRotationPoint(-5F, 8.5F, 6.5F); fin10.setTextureSize(128, 64); setRotation(fin10, 0F, 0F, 0F); portRight = new ModelRenderer(this, 48, 0); portRight.addBox(0F, 0F, 0F, 1, 8, 8); portRight.setRotationPoint(-8.01F, 12F, -4F); portRight.setTextureSize(128, 64); portRight.mirror = true; setRotation(portRight, 0F, 0F, 0F); fin9 = new ModelRenderer(this, 0, 48); fin9.mirror = true; fin9.addBox(0F, 0F, 0F, 10, 9, 1); fin9.setRotationPoint(-5F, 8.5F, 5F); fin9.setTextureSize(128, 64); setRotation(fin9, 0F, 0F, 0F); fin2 = new ModelRenderer(this, 0, 48); fin2.addBox(0F, 0F, 0F, 10, 9, 1); fin2.setRotationPoint(-5F, 8.5F, -6F); fin2.setTextureSize(128, 64); fin2.mirror = true; setRotation(fin2, 0F, 0F, 0F); bar2 = new ModelRenderer(this, 36, 23); bar2.addBox(0F, 0F, 0F, 1, 1, 13); bar2.setRotationPoint(-2F, 9.5F, -6.5F); bar2.setTextureSize(128, 64); bar2.mirror = true; setRotation(bar2, 0F, 0F, 0F); fin4 = new ModelRenderer(this, 0, 48); fin4.addBox(0F, 0F, 0F, 10, 9, 1); fin4.setRotationPoint(-5F, 8.5F, -3F); fin4.setTextureSize(128, 64); fin4.mirror = true; setRotation(fin4, 0F, 0F, 0F); fin3 = new ModelRenderer(this, 0, 48); fin3.mirror = true; fin3.addBox(0F, 0F, 0F, 10, 9, 1); fin3.setRotationPoint(-5F, 8.5F, -4.5F); fin3.setTextureSize(128, 64); setRotation(fin3, 0F, 0F, 0F); fin6 = new ModelRenderer(this, 0, 48); fin6.addBox(0F, 0F, 0F, 10, 9, 1); fin6.setRotationPoint(-5F, 8.5F, 0.5F); fin6.setTextureSize(128, 64); fin6.mirror = true; setRotation(fin6, 0F, 0F, 0F); center = new ModelRenderer(this, 0, 0); center.addBox(0F, 0F, 0F, 6, 6, 1); center.setRotationPoint(-3F, 11.5F, -0.5F); center.setTextureSize(128, 64); center.mirror = true; setRotation(center, 0F, 0F, 0F); fin8 = new ModelRenderer(this, 0, 48); fin8.addBox(0F, 0F, 0F, 10, 9, 1); fin8.setRotationPoint(-5F, 8.5F, 3.5F); fin8.setTextureSize(128, 64); fin8.mirror = true; setRotation(fin8, 0F, 0F, 0F); fin7 = new ModelRenderer(this, 0, 48); fin7.mirror = true; fin7.addBox(0F, 0F, 0F, 10, 9, 1); fin7.setRotationPoint(-5F, 8.5F, 2F); fin7.setTextureSize(128, 64); setRotation(fin7, 0F, 0F, 0F); fin5 = new ModelRenderer(this, 0, 48); fin5.mirror = true; fin5.addBox(0F, 0F, 0F, 10, 9, 1); fin5.setRotationPoint(-5F, 8.5F, -1.5F); fin5.setTextureSize(128, 64); setRotation(fin5, 0F, 0F, 0F); fin1 = new ModelRenderer(this, 22, 48); fin1.addBox(0F, 0F, 0F, 10, 9, 1); fin1.setRotationPoint(-5F, 8.5F, -7.5F); fin1.setTextureSize(128, 64); fin1.mirror = true; setRotation(fin1, 0F, 0F, 0F); bar1 = new ModelRenderer(this, 36, 23); bar1.addBox(0F, 0F, 0F, 1, 1, 13); bar1.setRotationPoint(-4F, 9.5F, -6.5F); bar1.setTextureSize(128, 64); bar1.mirror = true; setRotation(bar1, 0F, 0F, 0F); bar4 = new ModelRenderer(this, 36, 23); bar4.addBox(0F, 0F, 0F, 1, 1, 13); bar4.setRotationPoint(3F, 9.5F, -6.5F); bar4.setTextureSize(128, 64); bar4.mirror = true; setRotation(bar4, 0F, 0F, 0F); bar3 = new ModelRenderer(this, 36, 23); bar3.addBox(0F, 0F, 0F, 1, 1, 13); bar3.setRotationPoint(1F, 9.5F, -6.5F); bar3.setTextureSize(128, 64); bar3.mirror = true; setRotation(bar3, 0F, 0F, 0F); wallRight = new ModelRenderer(this, 0, 23); wallRight.addBox(0F, 0F, 0F, 3, 9, 16); wallRight.setRotationPoint(-8F, 8F, -8F); wallRight.setTextureSize(128, 64); wallRight.mirror = true; setRotation(wallRight, 0F, 0F, 0F); portLeft = new ModelRenderer(this, 48, 0); portLeft.addBox(0F, 0F, 0F, 1, 8, 8); portLeft.setRotationPoint(7.01F, 12F, -4F); portLeft.setTextureSize(128, 64); portLeft.mirror = true; setRotation(portLeft, 0F, 0F, 0F); } public void render(float size, boolean on, TextureManager manager, boolean renderMain) { GlStateManager.pushMatrix(); MekanismRenderer.blendOn(); if(renderMain) { doRender(size); } manager.bindTexture(on ? OVERLAY_ON : OVERLAY_OFF); GlStateManager.scale(1.001F, 1.001F, 1.001F); GlStateManager.translate(0, -0.0011F, 0); MekanismRenderer.glowOn(); doRender(size); MekanismRenderer.glowOff(); MekanismRenderer.blendOff(); GlStateManager.popMatrix(); } private void doRender(float size) { wallLeft.render(size); base.render(size); fin10.render(size); portRight.render(size); fin9.render(size); fin2.render(size); bar2.render(size); fin4.render(size); fin3.render(size); fin6.render(size); center.render(size); fin8.render(size); fin7.render(size); fin5.render(size); fin1.render(size); bar1.render(size); bar4.render(size); bar3.render(size); wallRight.render(size); portLeft.render(size); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } }