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 net.minecraft.entity.EntityLiving;
007 import net.minecraft.entity.monster.EntityMagmaCube;
008
009 @SideOnly(Side.CLIENT)
010 public class ModelMagmaCube extends ModelBase
011 {
012 ModelRenderer[] field_78109_a = new ModelRenderer[8];
013 ModelRenderer field_78108_b;
014
015 public ModelMagmaCube()
016 {
017 for (int var1 = 0; var1 < this.field_78109_a.length; ++var1)
018 {
019 byte var2 = 0;
020 int var3 = var1;
021
022 if (var1 == 2)
023 {
024 var2 = 24;
025 var3 = 10;
026 }
027 else if (var1 == 3)
028 {
029 var2 = 24;
030 var3 = 19;
031 }
032
033 this.field_78109_a[var1] = new ModelRenderer(this, var2, var3);
034 this.field_78109_a[var1].addBox(-4.0F, (float)(16 + var1), -4.0F, 8, 1, 8);
035 }
036
037 this.field_78108_b = new ModelRenderer(this, 0, 16);
038 this.field_78108_b.addBox(-2.0F, 18.0F, -2.0F, 4, 4, 4);
039 }
040
041 public int func_78107_a()
042 {
043 return 5;
044 }
045
046 /**
047 * Used for easily adding entity-dependent animations. The second and third float params here are the same second
048 * and third as in the setRotationAngles method.
049 */
050 public void setLivingAnimations(EntityLiving par1EntityLiving, float par2, float par3, float par4)
051 {
052 EntityMagmaCube var5 = (EntityMagmaCube)par1EntityLiving;
053 float var6 = var5.field_70812_c + (var5.field_70811_b - var5.field_70812_c) * par4;
054
055 if (var6 < 0.0F)
056 {
057 var6 = 0.0F;
058 }
059
060 for (int var7 = 0; var7 < this.field_78109_a.length; ++var7)
061 {
062 this.field_78109_a[var7].rotationPointY = (float)(-(4 - var7)) * var6 * 1.7F;
063 }
064 }
065
066 /**
067 * Sets the models various rotation angles then renders the model.
068 */
069 public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7)
070 {
071 this.setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity);
072 this.field_78108_b.render(par7);
073
074 for (int var8 = 0; var8 < this.field_78109_a.length; ++var8)
075 {
076 this.field_78109_a[var8].render(par7);
077 }
078 }
079 }