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 ModelChargepad extends ModelBase
{
public static ResourceLocation OVERLAY = MekanismUtils.getResource(ResourceType.RENDER, "Chargepad_Overlay.png");
ModelRenderer base;
ModelRenderer port;
ModelRenderer plug;
ModelRenderer connector;
ModelRenderer stand;
ModelRenderer pillar2;
ModelRenderer pillar1;
public ModelChargepad()
{
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);
port = new ModelRenderer(this, 0, 17);
port.addBox(0F, 0F, 0F, 8, 8, 1);
port.setRotationPoint(-4F, 12F, 7F);
port.setTextureSize(64, 64);
port.mirror = true;
setRotation(port, 0F, 0F, 0F);
plug = new ModelRenderer(this, 0, 11);
plug.addBox(0F, 0F, 0F, 2, 1, 2);
plug.setRotationPoint(-1F, 19F, 3F);
plug.setTextureSize(64, 64);
plug.mirror = true;
setRotation(plug, 0F, 0F, 0F);
connector = new ModelRenderer(this, 18, 17);
connector.addBox(0F, 0F, 0F, 6, 6, 1);
connector.setRotationPoint(-3F, 13F, 6F);
connector.setTextureSize(64, 64);
connector.mirror = true;
setRotation(connector, 0F, 0F, 0F);
stand = new ModelRenderer(this, 0, 0);
stand.addBox(0F, 0F, 0F, 6, 10, 1);
stand.setRotationPoint(-3F, 13F, 5F);
stand.setTextureSize(64, 64);
stand.mirror = true;
setRotation(stand, 0F, 0F, 0F);
pillar2 = new ModelRenderer(this, 48, 0);
pillar2.mirror = true;
pillar2.addBox(0F, 0F, 0F, 2, 7, 2);
pillar2.setRotationPoint(2F, 16F, 3.99F);
pillar2.setTextureSize(64, 64);
setRotation(pillar2, 0F, 0F, 0F);
pillar1 = new ModelRenderer(this, 48, 0);
pillar1.addBox(0F, 0F, 0F, 2, 7, 2);
pillar1.setRotationPoint(-4F, 16F, 3.99F);
pillar1.setTextureSize(64, 64);
pillar1.mirror = true;
setRotation(pillar1, 0F, 0F, 0F);
}
public void render(float size, TextureManager manager)
{
GlStateManager.pushMatrix();
MekanismRenderer.blendOn();
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)
{
base.render(size);
port.render(size);
plug.render(size);
connector.render(size);
stand.render(size);
pillar2.render(size);
pillar1.render(size);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
}