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