001    package net.minecraft.client.model;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import net.minecraft.entity.Entity;
006    import org.lwjgl.opengl.GL11;
007    
008    @SideOnly(Side.CLIENT)
009    public 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 var8 = 0.875F;
052            GL11.glScalef(var8, var8, var8);
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(var8, var8, var8);
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    }