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 }