BloodMagic/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java
2014-01-17 21:43:13 +00:00

181 lines
7.2 KiB
Java

package WayofTime.alchemicalWizardry.common.renderer.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.util.MathHelper;
import org.lwjgl.opengl.GL11;
public class ModelBileDemon extends ModelBase
{
//fields
ModelRenderer belly;
ModelRenderer chest;
ModelRenderer head;
ModelRenderer nose;
ModelRenderer leftHorn;
ModelRenderer leftArmSpacer;
ModelRenderer leftArm;
ModelRenderer leftChain;
ModelRenderer leftBall;
ModelRenderer rightHorn;
ModelRenderer rightChain;
ModelRenderer rightBall;
ModelRenderer rightArmSpacer;
ModelRenderer rightArm;
public ModelBileDemon()
{
textureWidth = 128;
textureHeight = 64;
belly = new ModelRenderer(this, 0, 31);
belly.addBox(-8F, -1F, -10F, 16, 15, 18);
belly.setRotationPoint(0F, 10F, 0F);
belly.setTextureSize(128, 64);
belly.mirror = true;
setRotation(belly, 0F, 0F, 0F);
chest = new ModelRenderer(this, 70, 46);
chest.addBox(-7F, -4F, -6F, 14, 4, 14);
chest.setRotationPoint(0F, 10F, 0F);
chest.setTextureSize(128, 64);
chest.mirror = true;
setRotation(chest, -0.1115358F, 0F, 0F);
head = new ModelRenderer(this, 0, 0);
head.addBox(-4F, -8F, -4F, 8, 8, 8);
head.setRotationPoint(0F, 6F, 3F);
head.setTextureSize(128, 64);
head.mirror = true;
setRotation(head, 0F, 0F, 0F);
nose = new ModelRenderer(this, 0, 0);
nose.addBox(-1F, -4F, -5F, 2, 1, 1);
nose.setRotationPoint(0F, 6F, 3F);
nose.setTextureSize(128, 64);
nose.mirror = true;
setRotation(nose, 0F, 0F, 0F);
leftHorn = new ModelRenderer(this, 93, 1);
leftHorn.addBox(4F, -7F, 0F, 16, 1, 1);
leftHorn.setRotationPoint(0F, 6F, 3F);
leftHorn.setTextureSize(128, 64);
leftHorn.mirror = true;
setRotation(leftHorn, 0F, 0F, 0F);
leftArmSpacer = new ModelRenderer(this, 80, 1);
leftArmSpacer.addBox(0F, -2F, -2F, 1, 4, 4);
leftArmSpacer.setRotationPoint(7F, 8F, 3F);
leftArmSpacer.setTextureSize(128, 64);
leftArmSpacer.mirror = true;
setRotation(leftArmSpacer, 0F, 0F, 0F);
leftArm = new ModelRenderer(this, 62, 1);
leftArm.addBox(1F, -2F, -2F, 4, 18, 4);
leftArm.setRotationPoint(7F, 8F, 3F);
leftArm.setTextureSize(128, 64);
leftArm.mirror = true;
setRotation(leftArm, 0F, 0F, 0F);
leftChain = new ModelRenderer(this, 95, 5);
leftChain.addBox(17F, -6F, 0F, 1, 6, 1);
leftChain.setRotationPoint(0F, 6F, 3F);
leftChain.setTextureSize(128, 64);
leftChain.mirror = true;
setRotation(leftChain, 0F, 0F, 0F);
leftBall = new ModelRenderer(this, 107, 4);
leftBall.addBox(15F, 0F, -2F, 5, 5, 5);
leftBall.setRotationPoint(0F, 6F, 3F);
leftBall.setTextureSize(128, 64);
leftBall.mirror = true;
setRotation(leftBall, 0F, 0F, 0F);
rightHorn = new ModelRenderer(this, 93, 1);
rightHorn.mirror = true;
rightHorn.addBox(-20F, -7F, 0F, 16, 1, 1);
rightHorn.setRotationPoint(0F, 6F, 3F);
rightHorn.setTextureSize(128, 64);
rightHorn.mirror = true;
setRotation(rightHorn, 0F, 0F, 0F);
rightHorn.mirror = false;
rightChain = new ModelRenderer(this, 95, 5);
rightChain.mirror = true;
rightChain.addBox(-18F, -6F, 0F, 1, 6, 1);
rightChain.setRotationPoint(0F, 6F, 3F);
rightChain.setTextureSize(128, 64);
rightChain.mirror = true;
setRotation(rightChain, 0F, 0F, 0F);
rightChain.mirror = false;
rightBall = new ModelRenderer(this, 107, 4);
rightBall.mirror = true;
rightBall.addBox(-20F, 0F, -2F, 5, 5, 5);
rightBall.setRotationPoint(0F, 6F, 3F);
rightBall.setTextureSize(128, 64);
rightBall.mirror = true;
setRotation(rightBall, 0F, 0F, 0F);
rightBall.mirror = false;
rightArmSpacer = new ModelRenderer(this, 80, 1);
rightArmSpacer.mirror = true;
rightArmSpacer.addBox(-1F, -2F, -2F, 1, 4, 4);
rightArmSpacer.setRotationPoint(-7F, 8F, 3F);
rightArmSpacer.setTextureSize(128, 64);
rightArmSpacer.mirror = true;
setRotation(rightArmSpacer, 0F, 0F, 0F);
rightArmSpacer.mirror = false;
rightArm = new ModelRenderer(this, 62, 1);
rightArm.mirror = true;
rightArm.addBox(-5F, -2F, -2F, 4, 18, 4);
rightArm.setRotationPoint(-7F, 8F, 3F);
rightArm.setTextureSize(128, 64);
rightArm.mirror = true;
setRotation(rightArm, 0F, 0F, 0F);
rightArm.mirror = false;
}
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);
float scale = 1.3f;
GL11.glScalef(scale, scale, scale);
GL11.glTranslatef(0.0f, -(6.0f / 16.0f), 0.0f);
belly.render(f5);
chest.render(f5);
head.render(f5);
nose.render(f5);
leftHorn.render(f5);
leftArmSpacer.render(f5);
leftArm.render(f5);
leftChain.render(f5);
leftBall.render(f5);
rightHorn.render(f5);
rightChain.render(f5);
rightBall.render(f5);
rightArmSpacer.render(f5);
rightArm.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
{
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
this.head.rotateAngleX = f4 / (180F / (float) Math.PI);
this.head.rotateAngleY = f3 / (180F / (float) Math.PI);
this.rightArm.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1;
this.leftArm.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1;
this.rightArmSpacer.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1;
this.leftArmSpacer.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1;
this.leftBall.rotateAngleX = this.head.rotateAngleX;
this.leftBall.rotateAngleY = this.head.rotateAngleY;
this.rightBall.rotateAngleX = this.head.rotateAngleX;
this.rightBall.rotateAngleY = this.head.rotateAngleY;
this.leftChain.rotateAngleX = this.head.rotateAngleX;
this.leftChain.rotateAngleY = this.head.rotateAngleY;
this.rightChain.rotateAngleX = this.head.rotateAngleX;
this.rightChain.rotateAngleY = this.head.rotateAngleY;
this.leftHorn.rotateAngleX = this.head.rotateAngleX;
this.leftHorn.rotateAngleY = this.head.rotateAngleY;
this.rightHorn.rotateAngleX = this.head.rotateAngleX;
this.rightHorn.rotateAngleY = this.head.rotateAngleY;
this.nose.rotateAngleX = this.head.rotateAngleX;
this.nose.rotateAngleY = this.head.rotateAngleY;
}
}