    001package net.minecraft.client.model;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import net.minecraft.entity.Entity;
    006import org.lwjgl.opengl.GL11;
    007
    008@SideOnly(Side.CLIENT)
    009public class ModelEnderCrystal extends ModelBase
    010{
    011    /** The cube model for the Ender Crystal. */
    012    private ModelRenderer cube;
    013
    014    /** The glass model for the Ender Crystal. */
    015    private ModelRenderer glass = new ModelRenderer(this, "glass");
    016
    017    /** The base model for the Ender Crystal. */
    018    private ModelRenderer base;
    019
    020    public ModelEnderCrystal(float par1, boolean par2)
    021    {
    022        this.glass.setTextureOffset(0, 0).addBox(-4.0F, -4.0F, -4.0F, 8, 8, 8);
    023        this.cube = new ModelRenderer(this, "cube");
    024        this.cube.setTextureOffset(32, 0).addBox(-4.0F, -4.0F, -4.0F, 8, 8, 8);
    025
    026        if (par2)
    027        {
    028            this.base = new ModelRenderer(this, "base");
    029            this.base.setTextureOffset(0, 16).addBox(-6.0F, 0.0F, -6.0F, 12, 4, 12);
    030        }
    031    }
    032
    033    /**
    034     * Sets the models various rotation angles then renders the model.
    035     */
    036    public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7)
    037    {
    038        GL11.glPushMatrix();
    039        GL11.glScalef(2.0F, 2.0F, 2.0F);
    040        GL11.glTranslatef(0.0F, -0.5F, 0.0F);
    041
    042        if (this.base != null)
    043        {
    044            this.base.render(par7);
    045        }
    046
    047        GL11.glRotatef(par3, 0.0F, 1.0F, 0.0F);
    048        GL11.glTranslatef(0.0F, 0.8F + par4, 0.0F);
    049        GL11.glRotatef(60.0F, 0.7071F, 0.0F, 0.7071F);
    050        this.glass.render(par7);
    051        float f6 = 0.875F;
    052        GL11.glScalef(f6, f6, f6);
    053        GL11.glRotatef(60.0F, 0.7071F, 0.0F, 0.7071F);
    054        GL11.glRotatef(par3, 0.0F, 1.0F, 0.0F);
    055        this.glass.render(par7);
    056        GL11.glScalef(f6, f6, f6);
    057        GL11.glRotatef(60.0F, 0.7071F, 0.0F, 0.7071F);
    058        GL11.glRotatef(par3, 0.0F, 1.0F, 0.0F);
    059        this.cube.render(par7);
    060        GL11.glPopMatrix();
    061    }
    062}