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 ModelDigitalMiner extends ModelBase { public static ResourceLocation OVERLAY_ON = MekanismUtils.getResource(ResourceType.RENDER, "DigitalMiner_OverlayOn.png"); public static ResourceLocation OVERLAY_OFF = MekanismUtils.getResource(ResourceType.RENDER, "DigitalMiner_OverlayOff.png"); ModelRenderer keyboard; ModelRenderer keyboardBottom; ModelRenderer keyboardSupportExt1; ModelRenderer keyboardSupportExt2; ModelRenderer keyboardSupport1; ModelRenderer keyboardSupport2; ModelRenderer monitor1back; ModelRenderer monitor2back; ModelRenderer monitor3back; ModelRenderer monitorBar1; ModelRenderer monitorBar2; ModelRenderer led1; ModelRenderer led2; ModelRenderer led3; ModelRenderer monitorMount1; ModelRenderer monitorMount2; ModelRenderer frame1; ModelRenderer frame3; ModelRenderer plate5; ModelRenderer bracket1; ModelRenderer bracket2; ModelRenderer bracket3; ModelRenderer bracket4; ModelRenderer bracket5; ModelRenderer bracket6; ModelRenderer bracket7; ModelRenderer bracket8; ModelRenderer bracketPlate1; ModelRenderer bracketPlate2; ModelRenderer bracketPlate3; ModelRenderer bracketPlate4; ModelRenderer supportBeam1; ModelRenderer supportBeam2; ModelRenderer supportBeam3; ModelRenderer supportBeam4; ModelRenderer foot1; ModelRenderer foot2; ModelRenderer foot3; ModelRenderer foot4; ModelRenderer core; ModelRenderer powerCable1a; ModelRenderer powerCable1b; ModelRenderer powerCable2; ModelRenderer powerCable3; ModelRenderer powerConnector1; ModelRenderer powerConnector2a; ModelRenderer powerConnector2b; ModelRenderer powerCpnnector3a; ModelRenderer powerConnector3b; ModelRenderer frame2a; ModelRenderer frame2b; ModelRenderer frame2c; ModelRenderer frame2d; ModelRenderer monitor1; ModelRenderer monitor2; ModelRenderer monitor3; public ModelDigitalMiner() { textureWidth = 256; textureHeight = 128; keyboard = new ModelRenderer(this, 120, 20); keyboard.addBox(0F, -3F, -1F, 10, 5, 1); keyboard.setRotationPoint(-5F, 14F, -5F); keyboard.setTextureSize(256, 128); keyboard.mirror = true; setRotation(keyboard, -1.082104F, 0.0174533F, 0F); keyboardBottom = new ModelRenderer(this, 120, 26); keyboardBottom.addBox(0F, -2.5F, -0.5F, 8, 4, 1); keyboardBottom.setRotationPoint(-4F, 14F, -5F); keyboardBottom.setTextureSize(256, 128); keyboardBottom.mirror = true; setRotation(keyboardBottom, -0.9075712F, 0F, 0F); keyboardSupportExt1 = new ModelRenderer(this, 138, 26); keyboardSupportExt1.addBox(0F, 0F, -1F, 1, 1, 1); keyboardSupportExt1.setRotationPoint(2F, 14F, -5F); keyboardSupportExt1.setTextureSize(256, 128); keyboardSupportExt1.mirror = true; setRotation(keyboardSupportExt1, 0F, 0F, 0F); keyboardSupportExt2 = new ModelRenderer(this, 138, 26); keyboardSupportExt2.addBox(0F, 0F, -1F, 1, 1, 1); keyboardSupportExt2.setRotationPoint(-3F, 14F, -5F); keyboardSupportExt2.setTextureSize(256, 128); keyboardSupportExt2.mirror = true; setRotation(keyboardSupportExt2, 0F, 0F, 0F); keyboardSupport1 = new ModelRenderer(this, 142, 20); keyboardSupport1.addBox(0F, -1F, 0F, 1, 2, 4); keyboardSupport1.setRotationPoint(-3F, 14F, -5F); keyboardSupport1.setTextureSize(256, 128); keyboardSupport1.mirror = true; setRotation(keyboardSupport1, 0F, 0F, 0F); keyboardSupport2 = new ModelRenderer(this, 142, 20); keyboardSupport2.addBox(0F, -1F, 0F, 1, 2, 4); keyboardSupport2.setRotationPoint(2F, 14F, -5F); keyboardSupport2.setTextureSize(256, 128); keyboardSupport2.mirror = true; setRotation(keyboardSupport2, 0F, 0F, 0F); monitor1back = new ModelRenderer(this, 88, 32); monitor1back.addBox(-13F, -3F, 0F, 12, 6, 1); monitor1back.setRotationPoint(-8F, 3F, -3F); monitor1back.setTextureSize(256, 128); monitor1back.mirror = true; setRotation(monitor1back, 0.0872665F, -0.2094395F, 0F); monitor2back = new ModelRenderer(this, 88, 32); monitor2back.addBox(0F, -4F, 0F, 12, 6, 1); monitor2back.setRotationPoint(-6F, 4F, -3F); monitor2back.setTextureSize(256, 128); monitor2back.mirror = true; setRotation(monitor2back, 0.0872665F, 0F, 0F); monitor3back = new ModelRenderer(this, 88, 32); monitor3back.addBox(1F, -3F, 0F, 12, 6, 1); monitor3back.setRotationPoint(8F, 3F, -3F); monitor3back.setTextureSize(256, 128); monitor3back.mirror = true; setRotation(monitor3back, 0.0872665F, 0.2094395F, 0F); monitorBar1 = new ModelRenderer(this, 114, 36); monitorBar1.addBox(-3.5F, -2F, -0.2F, 4, 2, 1); monitorBar1.setRotationPoint(-6F, 4F, -3F); monitorBar1.setTextureSize(256, 128); monitorBar1.mirror = true; setRotation(monitorBar1, 0.0872665F, -0.0523599F, 0F); monitorBar2 = new ModelRenderer(this, 114, 36); monitorBar2.addBox(0.5F, -2F, -0.2F, 4, 2, 1); monitorBar2.setRotationPoint(5F, 4F, -3F); monitorBar2.setTextureSize(256, 128); monitorBar2.mirror = true; setRotation(monitorBar2, 0.0872665F, 0.0523599F, 0F); led1 = new ModelRenderer(this, 0, 0); led1.addBox(-2F, 4.5F, -1.9F, 1, 1, 1); led1.setRotationPoint(-8F, 3F, -3F); led1.setTextureSize(256, 128); led1.mirror = true; setRotation(led1, 0.0872665F, -0.2094395F, 0F); led2 = new ModelRenderer(this, 0, 0); led2.addBox(12F, 4.466667F, -1.9F, 1, 1, 1); led2.setRotationPoint(-7F, 3F, -3F); led2.setTextureSize(256, 128); led2.mirror = true; setRotation(led2, 0.0872665F, 0F, 0F); led3 = new ModelRenderer(this, 0, 0); led3.addBox(12F, 4.5F, -1.9F, 1, 1, 1); led3.setRotationPoint(8F, 3F, -3F); led3.setTextureSize(256, 128); led3.mirror = true; setRotation(led3, 0.0872665F, 0.2094395F, 0F); monitorMount1 = new ModelRenderer(this, 114, 32); monitorMount1.addBox(0F, -1F, 0F, 2, 2, 2); monitorMount1.setRotationPoint(-4F, 3F, -3F); monitorMount1.setTextureSize(256, 128); monitorMount1.mirror = true; setRotation(monitorMount1, 0F, 0F, 0F); monitorMount2 = new ModelRenderer(this, 114, 32); monitorMount2.addBox(0F, -1F, 0F, 2, 2, 2); monitorMount2.setRotationPoint(2F, 3F, -3F); monitorMount2.setTextureSize(256, 128); monitorMount2.mirror = true; setRotation(monitorMount2, 0F, 0F, 0F); frame1 = new ModelRenderer(this, 0, 0); frame1.addBox(0F, 0F, 0F, 32, 29, 12); frame1.setRotationPoint(-16F, -8F, -1F); frame1.setTextureSize(256, 128); frame1.mirror = true; setRotation(frame1, 0F, 0F, 0F); frame3 = new ModelRenderer(this, 0, 0); frame3.addBox(0F, 0F, 0F, 32, 29, 12); frame3.setRotationPoint(-16F, -8F, 28F); frame3.setTextureSize(256, 128); frame3.mirror = true; setRotation(frame3, 0F, 0F, 0F); plate5 = new ModelRenderer(this, 88, 90); plate5.addBox(0F, 0F, 0F, 32, 5, 15); plate5.setRotationPoint(-16F, 16F, 12F); plate5.setTextureSize(256, 128); plate5.mirror = true; setRotation(plate5, 0F, 0F, 0F); bracket1 = new ModelRenderer(this, 16, 85); bracket1.addBox(0F, 0F, 0F, 5, 5, 2); bracket1.setRotationPoint(-21F, -5F, 0F); bracket1.setTextureSize(256, 128); bracket1.mirror = true; setRotation(bracket1, 0F, 0F, 0F); bracket2 = new ModelRenderer(this, 16, 85); bracket2.addBox(0F, 0F, 0F, 5, 5, 2); bracket2.setRotationPoint(-21F, -5F, 8F); bracket2.setTextureSize(256, 128); bracket2.mirror = true; setRotation(bracket2, 0F, 0F, 0F); bracket3 = new ModelRenderer(this, 16, 85); bracket3.addBox(0F, 0F, 0F, 5, 5, 2); bracket3.setRotationPoint(-21F, -5F, 29F); bracket3.setTextureSize(256, 128); bracket3.mirror = true; setRotation(bracket3, 0F, 0F, 0F); bracket4 = new ModelRenderer(this, 16, 85); bracket4.addBox(0F, 0F, 0F, 5, 5, 2); bracket4.setRotationPoint(-21F, -5F, 37F); bracket4.setTextureSize(256, 128); bracket4.mirror = true; setRotation(bracket4, 0F, 0F, 0F); bracket5 = new ModelRenderer(this, 16, 85); bracket5.addBox(0F, 0F, 0F, 5, 5, 2); bracket5.setRotationPoint(16F, -5F, 0F); bracket5.setTextureSize(256, 128); bracket5.mirror = true; setRotation(bracket5, 0F, 0F, 0F); bracket5.mirror = false; bracket6 = new ModelRenderer(this, 16, 85); bracket6.addBox(0F, 0F, 0F, 5, 5, 2); bracket6.setRotationPoint(16F, -5F, 8F); bracket6.setTextureSize(256, 128); bracket6.mirror = true; setRotation(bracket6, 0F, 0F, 0F); bracket7 = new ModelRenderer(this, 16, 85); bracket7.addBox(0F, 0F, 0F, 5, 5, 2); bracket7.setRotationPoint(16F, -5F, 29F); bracket7.setTextureSize(256, 128); bracket7.mirror = true; setRotation(bracket7, 0F, 0F, 0F); bracket8 = new ModelRenderer(this, 16, 85); bracket8.addBox(0F, 0F, 0F, 5, 5, 2); bracket8.setRotationPoint(16F, -5F, 37F); bracket8.setTextureSize(256, 128); bracket8.mirror = true; setRotation(bracket8, 0F, 0F, 0F); bracket8.mirror = false; bracketPlate1 = new ModelRenderer(this, 30, 85); bracketPlate1.addBox(0F, 0F, 0F, 1, 5, 6); bracketPlate1.setRotationPoint(-17F, -5F, 2F); bracketPlate1.setTextureSize(256, 128); bracketPlate1.mirror = true; setRotation(bracketPlate1, 0F, 0F, 0F); bracketPlate2 = new ModelRenderer(this, 30, 85); bracketPlate2.addBox(0F, 0F, 0F, 1, 5, 6); bracketPlate2.setRotationPoint(-17F, -5F, 31F); bracketPlate2.setTextureSize(256, 128); bracketPlate2.mirror = true; setRotation(bracketPlate2, 0F, 0F, 0F); bracketPlate3 = new ModelRenderer(this, 30, 85); bracketPlate3.addBox(0F, 0F, 0F, 1, 5, 6); bracketPlate3.setRotationPoint(16F, -5F, 2F); bracketPlate3.setTextureSize(256, 128); bracketPlate3.mirror = true; setRotation(bracketPlate3, 0F, 0F, 0F); bracketPlate4 = new ModelRenderer(this, 30, 85); bracketPlate4.addBox(0F, 0F, 0F, 1, 5, 6); bracketPlate4.setRotationPoint(16F, -5F, 31F); bracketPlate4.setTextureSize(256, 128); bracketPlate4.mirror = true; setRotation(bracketPlate4, 0F, 0F, 0F); supportBeam1 = new ModelRenderer(this, 0, 85); supportBeam1.addBox(0F, 0F, 0F, 4, 28, 8); supportBeam1.setRotationPoint(-22F, -6F, 1F); supportBeam1.setTextureSize(256, 128); supportBeam1.mirror = true; setRotation(supportBeam1, 0F, 0F, 0F); supportBeam2 = new ModelRenderer(this, 0, 85); supportBeam2.addBox(0F, 0F, 0F, 4, 28, 8); supportBeam2.setRotationPoint(-22F, -6F, 30F); supportBeam2.setTextureSize(256, 128); supportBeam2.mirror = true; setRotation(supportBeam2, 0F, 0F, 0F); supportBeam3 = new ModelRenderer(this, 0, 85); supportBeam3.addBox(0F, 0F, 0F, 4, 28, 8); supportBeam3.setRotationPoint(18F, -6F, 1F); supportBeam3.setTextureSize(256, 128); supportBeam3.mirror = true; setRotation(supportBeam3, 0F, 0F, 0F); supportBeam4 = new ModelRenderer(this, 0, 85); supportBeam4.addBox(0F, 0F, 0F, 4, 28, 8); supportBeam4.setRotationPoint(18F, -6F, 30F); supportBeam4.setTextureSize(256, 128); supportBeam4.mirror = true; setRotation(supportBeam4, 0F, 0F, 0F); supportBeam4.mirror = false; foot1 = new ModelRenderer(this, 44, 85); foot1.addBox(0F, 0F, 0F, 7, 2, 10); foot1.setRotationPoint(-23F, 22F, 0F); foot1.setTextureSize(256, 128); foot1.mirror = true; setRotation(foot1, 0F, 0F, 0F); foot2 = new ModelRenderer(this, 44, 85); foot2.addBox(0F, 0F, 0F, 7, 2, 10); foot2.setRotationPoint(-23F, 22F, 29F); foot2.setTextureSize(256, 128); foot2.mirror = true; setRotation(foot2, 0F, 0F, 0F); foot3 = new ModelRenderer(this, 44, 85); foot3.addBox(0F, 0F, 0F, 7, 2, 10); foot3.setRotationPoint(16F, 22F, 29F); foot3.setTextureSize(256, 128); foot3.mirror = true; setRotation(foot3, 0F, 0F, 0F); foot4 = new ModelRenderer(this, 44, 85); foot4.addBox(0F, 0F, 0F, 7, 2, 10); foot4.setRotationPoint(16F, 22F, 0F); foot4.setTextureSize(256, 128); foot4.mirror = true; setRotation(foot4, 0F, 0F, 0F); core = new ModelRenderer(this, 0, 41); core.addBox(0F, 0F, 0F, 30, 27, 17); core.setRotationPoint(-15F, -7F, 11F); core.setTextureSize(256, 128); core.mirror = true; setRotation(core, 0F, 0F, 0F); powerCable1a = new ModelRenderer(this, 88, 39); powerCable1a.addBox(0F, 0F, 0F, 6, 2, 11); powerCable1a.setRotationPoint(-3F, 20F, 2F); powerCable1a.setTextureSize(256, 128); powerCable1a.mirror = true; setRotation(powerCable1a, 0F, 0F, 0F); powerCable1b = new ModelRenderer(this, 94, 52); powerCable1b.addBox(0F, 0F, 0F, 6, 3, 6); powerCable1b.setRotationPoint(-3F, 20F, 13F); powerCable1b.setTextureSize(256, 128); powerCable1b.mirror = true; setRotation(powerCable1b, 0F, 0F, 0F); powerCable2 = new ModelRenderer(this, 42, 109); powerCable2.addBox(0F, 0F, 0F, 9, 6, 6); powerCable2.setRotationPoint(14F, 13F, 13F); powerCable2.setTextureSize(256, 128); powerCable2.mirror = true; setRotation(powerCable2, 0F, 0F, 0F); powerCable3 = new ModelRenderer(this, 42, 109); powerCable3.addBox(0F, 0F, 0F, 9, 6, 6); powerCable3.setRotationPoint(-23F, 13F, 13F); powerCable3.setTextureSize(256, 128); powerCable3.mirror = true; setRotation(powerCable3, 0F, 0F, 0F); powerConnector1 = new ModelRenderer(this, 94, 61); powerConnector1.addBox(0F, 0F, 0F, 8, 1, 8); powerConnector1.setRotationPoint(-4F, 23F, 12F); powerConnector1.setTextureSize(256, 128); powerConnector1.mirror = true; setRotation(powerConnector1, 0F, 0F, 0F); powerConnector2a = new ModelRenderer(this, 24, 105); powerConnector2a.addBox(0F, 0F, 0F, 1, 8, 8); powerConnector2a.setRotationPoint(23F, 12F, 12F); powerConnector2a.setTextureSize(256, 128); powerConnector2a.mirror = true; setRotation(powerConnector2a, 0F, 0F, 0F); powerConnector2b = new ModelRenderer(this, 24, 105); powerConnector2b.addBox(0F, 0F, 0F, 1, 8, 8); powerConnector2b.setRotationPoint(16F, 12F, 12F); powerConnector2b.setTextureSize(256, 128); powerConnector2b.mirror = true; setRotation(powerConnector2b, 0F, 0F, 0F); powerCpnnector3a = new ModelRenderer(this, 24, 105); powerCpnnector3a.addBox(0F, 0F, 0F, 1, 8, 8); powerCpnnector3a.setRotationPoint(-24F, 12F, 12F); powerCpnnector3a.setTextureSize(256, 128); powerCpnnector3a.mirror = true; setRotation(powerCpnnector3a, 0F, 0F, 0F); powerConnector3b = new ModelRenderer(this, 24, 105); powerConnector3b.addBox(0F, 0F, 0F, 1, 8, 8); powerConnector3b.setRotationPoint(-17F, 12F, 12F); powerConnector3b.setTextureSize(256, 128); powerConnector3b.mirror = true; setRotation(powerConnector3b, 0F, 0F, 0F); frame2a = new ModelRenderer(this, 88, 0); frame2a.addBox(0F, 0F, 0F, 32, 5, 15); frame2a.setRotationPoint(-16F, -8F, 12F); frame2a.setTextureSize(256, 128); frame2a.mirror = true; setRotation(frame2a, 0F, 0F, 0F); frame2b = new ModelRenderer(this, 126, 50); frame2b.addBox(0F, 0F, 0F, 32, 5, 15); frame2b.setRotationPoint(-16F, -2F, 12F); frame2b.setTextureSize(256, 128); frame2b.mirror = true; setRotation(frame2b, 0F, 0F, 0F); frame2c = new ModelRenderer(this, 126, 50); frame2c.addBox(0F, 0F, 0F, 32, 5, 15); frame2c.setRotationPoint(-16F, 4F, 12F); frame2c.setTextureSize(256, 128); frame2c.mirror = true; setRotation(frame2c, 0F, 0F, 0F); frame2d = new ModelRenderer(this, 88, 70); frame2d.addBox(0F, 0F, 0F, 32, 5, 15); frame2d.setRotationPoint(-16F, 10F, 12F); frame2d.setTextureSize(256, 128); frame2d.mirror = true; setRotation(frame2d, 0F, 0F, 0F); monitor1 = new ModelRenderer(this, 88, 20); monitor1.addBox(-14F, -5F, -2F, 14, 10, 2); monitor1.setRotationPoint(-8F, 3F, -3F); monitor1.setTextureSize(256, 128); monitor1.mirror = true; setRotation(monitor1, 0.0872665F, -0.2094395F, 0F); monitor2 = new ModelRenderer(this, 88, 20); monitor2.addBox(0F, -5F, -2F, 14, 10, 2); monitor2.setRotationPoint(-7F, 3F, -3F); monitor2.setTextureSize(256, 128); monitor2.mirror = true; setRotation(monitor2, 0.0872665F, 0F, 0F); monitor3 = new ModelRenderer(this, 88, 20); monitor3.addBox(0F, -5F, -2F, 14, 10, 2); monitor3.setRotationPoint(8F, 3F, -3F); monitor3.setTextureSize(256, 128); monitor3.mirror = true; setRotation(monitor3, 0.0872665F, 0.2094395F, 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) { keyboard.render(size); keyboardBottom.render(size); keyboardSupportExt1.render(size); keyboardSupportExt2.render(size); keyboardSupport1.render(size); keyboardSupport2.render(size); monitor1back.render(size); monitor2back.render(size); monitor3back.render(size); monitorBar1.render(size); monitorBar2.render(size); led1.render(size); led2.render(size); led3.render(size); monitor1.render(size); monitor2.render(size); monitor3.render(size); monitorMount1.render(size); monitorMount2.render(size); frame1.render(size); frame3.render(size); plate5.render(size); bracket1.render(size); bracket2.render(size); bracket3.render(size); bracket4.render(size); bracket5.render(size); bracket6.render(size); bracket7.render(size); bracket8.render(size); bracketPlate1.render(size); bracketPlate2.render(size); bracketPlate3.render(size); bracketPlate4.render(size); supportBeam1.render(size); supportBeam2.render(size); supportBeam3.render(size); supportBeam4.render(size); foot1.render(size); foot2.render(size); foot3.render(size); foot4.render(size); core.render(size); powerCable1a.render(size); powerCable1b.render(size); powerCable2.render(size); powerCable3.render(size); powerConnector1.render(size); powerConnector2a.render(size); powerConnector2b.render(size); powerCpnnector3a.render(size); powerConnector3b.render(size); frame2a.render(size); frame2b.render(size); frame2c.render(size); frame2d.render(size); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } }