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 ModelQuantumEntangloporter extends ModelBase
{
public static ResourceLocation OVERLAY = MekanismUtils.getResource(ResourceType.RENDER, "QuantumEntangloporter_Overlay.png");
ModelRenderer portTop;
ModelRenderer portBottom;
ModelRenderer portLeft;
ModelRenderer portRight;
ModelRenderer portBack;
ModelRenderer portFront;
ModelRenderer energyCubeCore;
ModelRenderer frameEdge1;
ModelRenderer frameEdge2;
ModelRenderer frameEdge3;
ModelRenderer frameEdge4;
ModelRenderer frameEdge5;
ModelRenderer frameEdge6;
ModelRenderer frameEdge7;
ModelRenderer frameEdge8;
ModelRenderer frameEdge9;
ModelRenderer frameEdge10;
ModelRenderer frameEdge11;
ModelRenderer frameEdge12;
ModelRenderer frame1;
ModelRenderer frame2;
ModelRenderer frame3;
ModelRenderer frame4;
ModelRenderer frame5;
ModelRenderer frame6;
ModelRenderer frame7;
ModelRenderer frame8;
ModelRenderer frame9;
ModelRenderer frame10;
ModelRenderer frame11;
ModelRenderer frame12;
ModelRenderer corner1;
ModelRenderer corner2;
ModelRenderer corner3;
ModelRenderer corner4;
ModelRenderer corner5;
ModelRenderer corner6;
ModelRenderer corner7;
ModelRenderer corner8;
ModelRenderer portRightLarge;
ModelRenderer portLeftLarge;
public ModelQuantumEntangloporter()
{
textureWidth = 128;
textureHeight = 64;
portTop = new ModelRenderer(this, 36, 0);
portTop.addBox(0F, 0F, 0F, 8, 1, 8);
portTop.setRotationPoint(-4F, 8F, -4F);
portTop.setTextureSize(128, 64);
portTop.mirror = true;
setRotation(portTop, 0F, 0F, 0F);
portBottom = new ModelRenderer(this, 36, 9);
portBottom.addBox(0F, 0F, 0F, 8, 1, 8);
portBottom.setRotationPoint(-4F, 23F, -4F);
portBottom.setTextureSize(128, 64);
portBottom.mirror = true;
setRotation(portBottom, 0F, 0F, 0F);
portLeft = new ModelRenderer(this, 0, 0);
portLeft.addBox(0F, 0F, 0F, 1, 8, 8);
portLeft.setRotationPoint(-8F, 12F, -4F);
portLeft.setTextureSize(128, 64);
portLeft.mirror = true;
setRotation(portLeft, 0F, 0F, 0F);
portRight = new ModelRenderer(this, 0, 0);
portRight.mirror = true;
portRight.addBox(0F, 0F, 0F, 1, 8, 8);
portRight.setRotationPoint(7F, 12F, -4F);
portRight.setTextureSize(128, 64);
setRotation(portRight, 0F, 0F, 0F);
portBack = new ModelRenderer(this, 18, 9);
portBack.addBox(0F, 0F, 0F, 8, 8, 1);
portBack.setRotationPoint(-4F, 12F, 7F);
portBack.setTextureSize(128, 64);
portBack.mirror = true;
setRotation(portBack, 0F, 0F, 0F);
portFront = new ModelRenderer(this, 18, 0);
portFront.addBox(0F, 0F, 0F, 8, 8, 1);
portFront.setRotationPoint(-4F, 12F, -8F);
portFront.setTextureSize(128, 64);
portFront.mirror = true;
setRotation(portFront, 0F, 0F, 0F);
energyCubeCore = new ModelRenderer(this, 0, 41);
energyCubeCore.addBox(-2F, -2F, -2F, 4, 4, 4);
energyCubeCore.setRotationPoint(0F, 16F, 0F);
energyCubeCore.setTextureSize(128, 64);
energyCubeCore.mirror = true;
setRotation(energyCubeCore, 0.7132579F, 0.403365F, 0.645384F);
frameEdge1 = new ModelRenderer(this, 0, 16);
frameEdge1.addBox(0F, 0F, 0F, 1, 10, 1);
frameEdge1.setRotationPoint(-7.5F, 11F, -7.5F);
frameEdge1.setTextureSize(128, 64);
frameEdge1.mirror = true;
setRotation(frameEdge1, 0F, 0F, 0F);
frameEdge2 = new ModelRenderer(this, 0, 16);
frameEdge2.addBox(0F, 0F, 0F, 1, 10, 1);
frameEdge2.setRotationPoint(6.5F, 11F, -7.5F);
frameEdge2.setTextureSize(128, 64);
frameEdge2.mirror = true;
setRotation(frameEdge2, 0F, 0F, 0F);
frameEdge3 = new ModelRenderer(this, 0, 16);
frameEdge3.addBox(0F, 0F, 0F, 1, 10, 1);
frameEdge3.setRotationPoint(-7.5F, 11F, 6.5F);
frameEdge3.setTextureSize(128, 64);
frameEdge3.mirror = true;
setRotation(frameEdge3, 0F, 0F, 0F);
frameEdge4 = new ModelRenderer(this, 0, 16);
frameEdge4.addBox(0F, 0F, 0F, 1, 10, 1);
frameEdge4.setRotationPoint(6.5F, 11F, 6.5F);
frameEdge4.setTextureSize(128, 64);
frameEdge4.mirror = true;
setRotation(frameEdge4, 0F, 0F, 0F);
frameEdge5 = new ModelRenderer(this, 4, 27);
frameEdge5.addBox(0F, 0F, 0F, 10, 1, 1);
frameEdge5.setRotationPoint(-5F, 22.5F, -7.5F);
frameEdge5.setTextureSize(128, 64);
frameEdge5.mirror = true;
setRotation(frameEdge5, 0F, 0F, 0F);
frameEdge6 = new ModelRenderer(this, 4, 16);
frameEdge6.addBox(0F, 0F, 0F, 1, 1, 10);
frameEdge6.setRotationPoint(-7.5F, 22.5F, -5F);
frameEdge6.setTextureSize(128, 64);
frameEdge6.mirror = true;
setRotation(frameEdge6, 0F, 0F, 0F);
frameEdge7 = new ModelRenderer(this, 4, 16);
frameEdge7.addBox(0F, 0F, 0F, 1, 1, 10);
frameEdge7.setRotationPoint(6.5F, 22.5F, -5F);
frameEdge7.setTextureSize(128, 64);
frameEdge7.mirror = true;
setRotation(frameEdge7, 0F, 0F, 0F);
frameEdge8 = new ModelRenderer(this, 4, 27);
frameEdge8.addBox(0F, 0F, 0F, 10, 1, 1);
frameEdge8.setRotationPoint(-5F, 22.5F, 6.5F);
frameEdge8.setTextureSize(128, 64);
frameEdge8.mirror = true;
setRotation(frameEdge8, 0F, 0F, 0F);
frameEdge9 = new ModelRenderer(this, 4, 27);
frameEdge9.addBox(0F, 0F, 0F, 10, 1, 1);
frameEdge9.setRotationPoint(-5F, 8.5F, -7.5F);
frameEdge9.setTextureSize(128, 64);
frameEdge9.mirror = true;
setRotation(frameEdge9, 0F, 0F, 0F);
frameEdge10 = new ModelRenderer(this, 4, 16);
frameEdge10.addBox(0F, 0F, 0F, 1, 1, 10);
frameEdge10.setRotationPoint(-7.5F, 8.5F, -5F);
frameEdge10.setTextureSize(128, 64);
frameEdge10.mirror = true;
setRotation(frameEdge10, 0F, 0F, 0F);
frameEdge11 = new ModelRenderer(this, 4, 16);
frameEdge11.addBox(0F, 0F, 0F, 1, 1, 10);
frameEdge11.setRotationPoint(6.5F, 8.5F, -5F);
frameEdge11.setTextureSize(128, 64);
frameEdge11.mirror = true;
setRotation(frameEdge11, 0F, 0F, 0F);
frameEdge12 = new ModelRenderer(this, 4, 27);
frameEdge12.addBox(0F, 0F, 0F, 10, 1, 1);
frameEdge12.setRotationPoint(-5F, 8.5F, 6.5F);
frameEdge12.setTextureSize(128, 64);
frameEdge12.mirror = true;
setRotation(frameEdge12, 0F, 0F, 0F);
frame1 = new ModelRenderer(this, 0, 29);
frame1.addBox(0F, 0F, 0F, 2, 10, 2);
frame1.setRotationPoint(-7F, 11F, -7F);
frame1.setTextureSize(128, 64);
frame1.mirror = true;
setRotation(frame1, 0F, 0F, 0F);
frame2 = new ModelRenderer(this, 0, 29);
frame2.mirror = true;
frame2.addBox(0F, 0F, 0F, 2, 10, 2);
frame2.setRotationPoint(5F, 11F, -7F);
frame2.setTextureSize(128, 64);
setRotation(frame2, 0F, 0F, 0F);
frame3 = new ModelRenderer(this, 8, 29);
frame3.addBox(0F, 0F, 0F, 2, 10, 2);
frame3.setRotationPoint(-7F, 11F, 5F);
frame3.setTextureSize(128, 64);
frame3.mirror = true;
setRotation(frame3, 0F, 0F, 0F);
frame4 = new ModelRenderer(this, 8, 29);
frame4.mirror = true;
frame4.addBox(0F, 0F, 0F, 2, 10, 2);
frame4.setRotationPoint(5F, 11F, 5F);
frame4.setTextureSize(128, 64);
setRotation(frame4, 0F, 0F, 0F);
frame5 = new ModelRenderer(this, 16, 45);
frame5.addBox(0F, 0F, 0F, 10, 2, 2);
frame5.setRotationPoint(-5F, 21F, -7F);
frame5.setTextureSize(128, 64);
frame5.mirror = true;
setRotation(frame5, 0F, 0F, 0F);
frame6 = new ModelRenderer(this, 40, 29);
frame6.addBox(0F, 0F, 0F, 2, 2, 10);
frame6.setRotationPoint(-7F, 21F, -5F);
frame6.setTextureSize(128, 64);
frame6.mirror = true;
setRotation(frame6, 0F, 0F, 0F);
frame7 = new ModelRenderer(this, 40, 29);
frame7.mirror = true;
frame7.addBox(0F, 0F, 0F, 2, 2, 10);
frame7.setRotationPoint(5F, 21F, -5F);
frame7.setTextureSize(128, 64);
setRotation(frame7, 0F, 0F, 0F);
frame8 = new ModelRenderer(this, 16, 49);
frame8.addBox(0F, 0F, 0F, 10, 2, 2);
frame8.setRotationPoint(-5F, 21F, 5F);
frame8.setTextureSize(128, 64);
frame8.mirror = true;
setRotation(frame8, 0F, 0F, 0F);
frame9 = new ModelRenderer(this, 16, 41);
frame9.addBox(0F, 0F, 0F, 10, 2, 2);
frame9.setRotationPoint(-5F, 9F, -7F);
frame9.setTextureSize(128, 64);
frame9.mirror = true;
setRotation(frame9, 0F, 0F, 0F);
frame10 = new ModelRenderer(this, 16, 29);
frame10.addBox(0F, 0F, 0F, 2, 2, 10);
frame10.setRotationPoint(-7F, 9F, -5F);
frame10.setTextureSize(128, 64);
frame10.mirror = true;
setRotation(frame10, 0F, 0F, 0F);
frame11 = new ModelRenderer(this, 16, 29);
frame11.mirror = true;
frame11.addBox(0F, 0F, 0F, 2, 2, 10);
frame11.setRotationPoint(5F, 9F, -5F);
frame11.setTextureSize(128, 64);
setRotation(frame11, 0F, 0F, 0F);
frame12 = new ModelRenderer(this, 16, 53);
frame12.addBox(0F, 0F, 0F, 10, 2, 2);
frame12.setRotationPoint(-5F, 9F, 5F);
frame12.setTextureSize(128, 64);
frame12.mirror = true;
setRotation(frame12, 0F, 0F, 0F);
corner1 = new ModelRenderer(this, 0, 49);
corner1.addBox(0F, 0F, 0F, 3, 3, 3);
corner1.setRotationPoint(-8F, 8F, -8F);
corner1.setTextureSize(128, 64);
corner1.mirror = true;
setRotation(corner1, 0F, 0F, 0F);
corner2 = new ModelRenderer(this, 0, 49);
corner2.addBox(0F, 0F, 0F, 3, 3, 3);
corner2.setRotationPoint(5F, 8F, -8F);
corner2.setTextureSize(128, 64);
corner2.mirror = true;
setRotation(corner2, 0F, 0F, 0F);
corner3 = new ModelRenderer(this, 0, 49);
corner3.addBox(0F, 0F, 0F, 3, 3, 3);
corner3.setRotationPoint(-8F, 8F, 5F);
corner3.setTextureSize(128, 64);
corner3.mirror = true;
setRotation(corner3, 0F, 0F, 0F);
corner4 = new ModelRenderer(this, 0, 49);
corner4.addBox(0F, 0F, 0F, 3, 3, 3);
corner4.setRotationPoint(5F, 8F, 5F);
corner4.setTextureSize(128, 64);
corner4.mirror = true;
setRotation(corner4, 0F, 0F, 0F);
corner5 = new ModelRenderer(this, 0, 49);
corner5.addBox(0F, 0F, 0F, 3, 3, 3);
corner5.setRotationPoint(-8F, 21F, -8F);
corner5.setTextureSize(128, 64);
corner5.mirror = true;
setRotation(corner5, 0F, 0F, 0F);
corner6 = new ModelRenderer(this, 0, 49);
corner6.addBox(0F, 0F, 0F, 3, 3, 3);
corner6.setRotationPoint(5F, 21F, -8F);
corner6.setTextureSize(128, 64);
corner6.mirror = true;
setRotation(corner6, 0F, 0F, 0F);
corner7 = new ModelRenderer(this, 0, 49);
corner7.addBox(0F, 0F, 0F, 3, 3, 3);
corner7.setRotationPoint(-8F, 21F, 5F);
corner7.setTextureSize(128, 64);
corner7.mirror = true;
setRotation(corner7, 0F, 0F, 0F);
corner8 = new ModelRenderer(this, 0, 49);
corner8.addBox(0F, 0F, 0F, 3, 3, 3);
corner8.setRotationPoint(5F, 21F, 5F);
corner8.setTextureSize(128, 64);
corner8.mirror = true;
setRotation(corner8, 0F, 0F, 0F);
portRightLarge = new ModelRenderer(this, 68, 0);
portRightLarge.mirror = true;
portRightLarge.addBox(0F, 0F, 0F, 1, 10, 10);
portRightLarge.setRotationPoint(7F, 11F, -5F);
portRightLarge.setTextureSize(128, 64);
setRotation(portRightLarge, 0F, 0F, 0F);
portLeftLarge = new ModelRenderer(this, 68, 0);
portLeftLarge.addBox(0F, 0F, 0F, 1, 10, 10);
portLeftLarge.setRotationPoint(-8F, 11F, -5F);
portLeftLarge.setTextureSize(128, 64);
portLeftLarge.mirror = true;
setRotation(portLeftLarge, 0F, 0F, 0F);
}
public void render(float size, TextureManager manager, boolean renderMain)
{
GlStateManager.pushMatrix();
MekanismRenderer.blendOn();
if(renderMain)
{
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();
}
public void doRender(float size)
{
portTop.render(size);
portBottom.render(size);
portLeft.render(size);
portRight.render(size);
portBack.render(size);
portFront.render(size);
energyCubeCore.render(size);
frameEdge1.render(size);
frameEdge2.render(size);
frameEdge3.render(size);
frameEdge4.render(size);
frameEdge5.render(size);
frameEdge6.render(size);
frameEdge7.render(size);
frameEdge8.render(size);
frameEdge9.render(size);
frameEdge10.render(size);
frameEdge11.render(size);
frameEdge12.render(size);
frame1.render(size);
frame2.render(size);
frame3.render(size);
frame4.render(size);
frame5.render(size);
frame6.render(size);
frame7.render(size);
frame8.render(size);
frame9.render(size);
frame10.render(size);
frame11.render(size);
frame12.render(size);
corner1.render(size);
corner2.render(size);
corner3.render(size);
corner4.render(size);
corner5.render(size);
corner6.render(size);
corner7.render(size);
corner8.render(size);
//portRightLarge.render(size);
//portLeftLarge.render(size);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
}