122 lines
4.5 KiB
Java
122 lines
4.5 KiB
Java
package mods.tinker.tconstruct.client.entity;
|
|
|
|
import mods.tinker.tconstruct.entity.Automaton;
|
|
import net.minecraft.client.model.ModelBase;
|
|
import net.minecraft.client.model.ModelRenderer;
|
|
import net.minecraft.entity.Entity;
|
|
import net.minecraft.entity.EntityLiving;
|
|
|
|
public class CrystalGuardianModel extends ModelBase
|
|
{
|
|
public ModelRenderer chest;
|
|
public ModelRenderer leftarm;
|
|
public ModelRenderer rightarm;
|
|
public ModelRenderer leftleg;
|
|
public ModelRenderer rightleg;
|
|
public ModelRenderer neckplate;
|
|
public ModelRenderer head;
|
|
public ModelRenderer crystal;
|
|
public ModelRenderer eyeleft;
|
|
public ModelRenderer eyeright;
|
|
|
|
public CrystalGuardianModel()
|
|
{
|
|
textureWidth = 64;
|
|
textureHeight = 64;
|
|
|
|
chest = new ModelRenderer(this, 0, 0);
|
|
chest.addBox(-8F, -8F, -5F, 16, 16, 10);
|
|
chest.setRotationPoint(0F, 0F, 0F);
|
|
setRotation(chest, 0F, 0F, 0F);
|
|
leftarm = new ModelRenderer(this, 0, 26);
|
|
leftarm.mirror = true;
|
|
leftarm.addBox(0F, -2F, -2F, 4, 22, 4);
|
|
leftarm.setRotationPoint(8F, -5F, 0F);
|
|
setRotation(leftarm, 0F, 0F, 0F);
|
|
rightarm = new ModelRenderer(this, 0, 26);
|
|
rightarm.mirror = false;
|
|
rightarm.addBox(-4F, -2F, -2F, 4, 22, 4);
|
|
rightarm.setRotationPoint(-8F, -5F, 0F);
|
|
setRotation(rightarm, 0F, 0F, 0F);
|
|
leftleg = new ModelRenderer(this, 16, 26);
|
|
leftleg.mirror = true;
|
|
leftleg.addBox(-2F, 0F, -3F, 4, 16, 6);
|
|
leftleg.setRotationPoint(4F, 8F, 0F);
|
|
setRotation(leftleg, 0F, 0F, 0F);
|
|
rightleg = new ModelRenderer(this, 16, 26);
|
|
rightleg.mirror = false;
|
|
rightleg.addBox(-2F, 0F, -3F, 4, 16, 6);
|
|
rightleg.setRotationPoint(-4F, 8F, 0F);
|
|
setRotation(rightleg, 0F, 0F, 0F);
|
|
neckplate = new ModelRenderer(this, 8, 48);
|
|
neckplate.addBox(-4F, -1F, -4F, 8, 1, 8);
|
|
neckplate.setRotationPoint(0F, -8F, 0F);
|
|
setRotation(neckplate, 0F, 0F, 0F);
|
|
head = new ModelRenderer(this, 36, 26);
|
|
head.addBox(-3F, -6F, -3F, 6, 6, 6);
|
|
head.setRotationPoint(0F, -9F, 0F);
|
|
setRotation(head, 0F, 0F, 0F);
|
|
crystal = new ModelRenderer(this, 36, 38);
|
|
crystal.addBox(-1F, -8F, -1F, 2, 2, 2);
|
|
crystal.setRotationPoint(0F, -9F, 0F);
|
|
setRotation(crystal, 0F, 0F, 0F);
|
|
eyeleft = new ModelRenderer(this, 36, 42);
|
|
eyeleft.addBox(1F, -4F, -4F, 2, 2, 1);
|
|
eyeleft.setRotationPoint(0F, -9F, 0F);
|
|
setRotation(eyeleft, 0F, 0F, 0F);
|
|
eyeright = new ModelRenderer(this, 36, 42);
|
|
eyeright.addBox(-3F, -4F, -4F, 2, 2, 1);
|
|
eyeright.setRotationPoint(0F, -9F, 0F);
|
|
setRotation(eyeright, 0F, 0F, 0F);
|
|
}
|
|
|
|
public void render (Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
|
|
{
|
|
super.render(entity, f, f1, f2, f3, f4, f5);
|
|
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
|
|
chest.render(f5);
|
|
leftarm.render(f5);
|
|
rightarm.render(f5);
|
|
leftleg.render(f5);
|
|
rightleg.render(f5);
|
|
neckplate.render(f5);
|
|
head.render(f5);
|
|
crystal.render(f5);
|
|
eyeleft.render(f5);
|
|
eyeright.render(f5);
|
|
}
|
|
|
|
private void setRotation (ModelRenderer model, float x, float y, float z)
|
|
{
|
|
model.rotateAngleX = x;
|
|
model.rotateAngleY = y;
|
|
model.rotateAngleZ = z;
|
|
}
|
|
|
|
@Override
|
|
public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6, Entity par7Entity)
|
|
{
|
|
//super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
|
|
|
|
this.rightleg.rotateAngleX = -1.5F * this.func_78172_a(par1, 13.0F) * par2;
|
|
this.leftleg.rotateAngleX = 1.5F * this.func_78172_a(par1, 13.0F) * par2;
|
|
}
|
|
|
|
@Override
|
|
public void setLivingAnimations(EntityLiving par1EntityLiving, float par2, float par3, float par4)
|
|
{
|
|
Automaton entityirongolem = (Automaton)par1EntityLiving;
|
|
int i = 0;//entityirongolem.getAttackTimer();
|
|
|
|
this.rightarm.rotateAngleX = (-0.2F + 1.5F * this.func_78172_a(par2, 13.0F)) * par3;
|
|
this.leftarm.rotateAngleX = (-0.2F - 1.5F * this.func_78172_a(par2, 13.0F)) * par3;
|
|
/*this.rightarm.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float)i - par4, 10.0F);
|
|
this.leftarm.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float)i - par4, 10.0F);*/
|
|
}
|
|
|
|
private float func_78172_a(float par1, float par2)
|
|
{
|
|
return (Math.abs(par1 % par2 - par2 * 0.5F) - par2 * 0.25F) / (par2 * 0.25F);
|
|
}
|
|
}
|