package WayofTime.alchemicalWizardry.common.renderer.model; import cpw.mods.fml.client.FMLClientHandler; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; public class ModelFallenAngel extends ModelBase { //fields ModelRenderer leftWing; ModelRenderer rightWing; ModelRenderer head; ModelRenderer body; ModelRenderer rightarm; ModelRenderer leftarm; ModelRenderer rightleg; ModelRenderer leftleg; public ModelFallenAngel() { textureWidth = 64; textureHeight = 32; leftWing = new ModelRenderer(this, 33, 8); leftWing.mirror = true; leftWing.addBox(0F, 0F, 0F, 10, 7, 0); leftWing.setRotationPoint(0F, 1F, 2F); leftWing.setTextureSize(64, 32); leftWing.mirror = true; setRotation(leftWing, 0F, 0F, 0F); rightWing = new ModelRenderer(this, 33, 8); rightWing.addBox(-10F, 0F, 0F, 10, 7, 0); rightWing.setRotationPoint(0F, 1F, 2F); rightWing.setTextureSize(64, 32); rightWing.mirror = true; setRotation(rightWing, 0F, 0F, 0F); rightWing.mirror = false; head = new ModelRenderer(this, 0, 0); head.addBox(-4F, -8F, -4F, 8, 8, 8); head.setRotationPoint(0F, 0F, 0F); head.setTextureSize(64, 32); head.mirror = true; setRotation(head, 0F, 0F, 0F); body = new ModelRenderer(this, 16, 16); body.addBox(-4F, 0F, -2F, 8, 12, 4); body.setRotationPoint(0F, 0F, 0F); body.setTextureSize(64, 32); body.mirror = true; setRotation(body, 0F, 0F, 0F); rightarm = new ModelRenderer(this, 40, 16); rightarm.addBox(-3F, -2F, -2F, 4, 12, 4); rightarm.setRotationPoint(-5F, 2F, 0F); rightarm.setTextureSize(64, 32); rightarm.mirror = true; setRotation(rightarm, 0F, 0F, 0F); rightarm.mirror = false; leftarm = new ModelRenderer(this, 40, 16); leftarm.mirror = true; leftarm.addBox(-1F, -2F, -2F, 4, 12, 4); leftarm.setRotationPoint(5F, 2F, 0F); leftarm.setTextureSize(64, 32); leftarm.mirror = true; setRotation(leftarm, 0F, 0F, 0F); rightleg = new ModelRenderer(this, 0, 16); rightleg.addBox(-2F, 0F, -2F, 4, 12, 4); rightleg.setRotationPoint(-2F, 12F, 0F); rightleg.setTextureSize(64, 32); rightleg.mirror = true; setRotation(rightleg, 0F, 0F, 0F); rightleg.mirror = false; leftleg = new ModelRenderer(this, 0, 16); leftleg.mirror = true; leftleg.addBox(-2F, 0F, -2F, 4, 12, 4); leftleg.setRotationPoint(2F, 12F, 0F); leftleg.setTextureSize(64, 32); leftleg.mirror = true; setRotation(leftleg, 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); leftWing.render(f5); rightWing.render(f5); head.render(f5); body.render(f5); rightarm.render(f5); leftarm.render(f5); rightleg.render(f5); leftleg.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.leftleg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; this.rightleg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float)Math.PI) * 1.4F * f1; this.rightarm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float)Math.PI) * 1.4F * f1; this.leftarm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; this.rightWing.rotateAngleY = MathHelper.cos(0.1662F); this.leftWing.rotateAngleY = MathHelper.cos(0.1662F + (float)Math.PI); } }