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 ModelSecurityDesk extends ModelBase { public static ResourceLocation OVERLAY = MekanismUtils.getResource(ResourceType.RENDER, "SecurityDesk_Overlay.png"); ModelRenderer deskTop; ModelRenderer deskBase; ModelRenderer led; ModelRenderer monitorBack; ModelRenderer keyboard; ModelRenderer monitor; ModelRenderer standNeck; ModelRenderer standBase; ModelRenderer deskMiddle; ModelRenderer monitorScreen; public ModelSecurityDesk() { textureWidth = 128; textureHeight = 64; deskTop = new ModelRenderer(this, 0, 0); deskTop.addBox(0F, 0F, 0F, 16, 7, 16); deskTop.setRotationPoint(-8F, 11F, -8F); deskTop.setTextureSize(128, 64); deskTop.mirror = true; setRotation(deskTop, 0F, 0F, 0F); deskBase = new ModelRenderer(this, 0, 38); deskBase.addBox(0F, 0F, 0F, 16, 5, 16); deskBase.setRotationPoint(-8F, 19F, -8F); deskBase.setTextureSize(128, 64); deskBase.mirror = true; setRotation(deskBase, 0F, 0F, 0F); led = new ModelRenderer(this, 0, 0); led.addBox(12F, 4.5F, -1.5F, 1, 1, 1); led.setRotationPoint(-7F, 5F, 4F); led.setTextureSize(128, 64); led.mirror = true; setRotation(led, -0.4712389F, 0F, 0F); monitorBack = new ModelRenderer(this, 82, 0); monitorBack.addBox(1F, -3F, 0F, 12, 6, 1); monitorBack.setRotationPoint(-7F, 5F, 4F); monitorBack.setTextureSize(128, 64); monitorBack.mirror = true; setRotation(monitorBack, -0.4712389F, 0F, 0F); keyboard = new ModelRenderer(this, 64, 27); keyboard.addBox(0F, 0F, 0F, 10, 1, 5); keyboard.setRotationPoint(-5F, 10.5F, -6F); keyboard.setTextureSize(128, 64); keyboard.mirror = true; setRotation(keyboard, 0.0872665F, 0F, 0F); monitor = new ModelRenderer(this, 64, 10); monitor.addBox(0F, -5F, -2F, 14, 10, 2); monitor.setRotationPoint(-7F, 5F, 4F); monitor.setTextureSize(128, 64); monitor.mirror = true; setRotation(monitor, -0.4712389F, 0F, 0F); standNeck = new ModelRenderer(this, 96, 7); standNeck.addBox(0F, -7F, -1F, 2, 7, 1); standNeck.setRotationPoint(-1F, 10F, 6F); standNeck.setTextureSize(128, 64); standNeck.mirror = true; setRotation(standNeck, 0.0698132F, 0F, 0F); standBase = new ModelRenderer(this, 64, 22); standBase.addBox(0F, 0F, -4F, 8, 1, 4); standBase.setRotationPoint(-4F, 10F, 6F); standBase.setTextureSize(128, 64); standBase.mirror = true; setRotation(standBase, 0.1047198F, 0F, 0F); deskMiddle = new ModelRenderer(this, 0, 23); deskMiddle.addBox(0F, 0F, 0F, 14, 1, 14); deskMiddle.setRotationPoint(-7F, 18F, -7F); deskMiddle.setTextureSize(128, 64); deskMiddle.mirror = true; setRotation(deskMiddle, 0F, 0F, 0F); monitorScreen = new ModelRenderer(this, 64, 33); monitorScreen.addBox(0.5F, -4.5F, -2.01F, 13, 9, 2); monitorScreen.setRotationPoint(-7F, 5F, 4F); monitorScreen.setTextureSize(128, 64); monitorScreen.mirror = true; setRotation(monitorScreen, -0.4712389F, 0F, 0F); } public void render(float size, TextureManager manager) { GlStateManager.pushMatrix(); MekanismRenderer.blendOn(); doRender(size); manager.bindTexture(OVERLAY); 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) { deskTop.render(size); deskBase.render(size); led.render(size); monitorBack.render(size); keyboard.render(size); monitor.render(size); standNeck.render(size); standBase.render(size); deskMiddle.render(size); monitorScreen.render(size); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } }