package minefantasy.client; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; /** * * @author Anonymous Productions * * Sources are provided for educational reasons. * though small bits of code, or methods can be used in your own creations. */ public class ModelBellows extends ModelBase { //fields ModelRenderer Flap4; ModelRenderer Handle; ModelRenderer Flap1; ModelRenderer Flap2; ModelRenderer Flap3; ModelRenderer Base; ModelRenderer Top; public ModelBellows() { textureWidth = 64; textureHeight = 32; Flap4 = new ModelRenderer(this, 0, 23); Flap4.addBox(0F, 0F, -4F, 10, 1, 8); Flap4.setRotationPoint(-8F, 23F, 0F); Flap4.setTextureSize(64, 32); Flap4.mirror = true; setRotation(Flap4, 0F, 0F, -0.418879F); Handle = new ModelRenderer(this, 40, 0); Handle.addBox(7F, -1F, -1F, 10, 2, 2); Handle.setRotationPoint(-8F, 23F, 0F); Handle.setTextureSize(64, 32); Handle.mirror = true; setRotation(Handle, 0F, 0F, -0.5235988F); Flap1 = new ModelRenderer(this, 34, 23); Flap1.addBox(0F, 0F, -3F, 9, 1, 6); Flap1.setRotationPoint(-8F, 23F, 0F); Flap1.setTextureSize(64, 32); Flap1.mirror = true; setRotation(Flap1, 0F, 0F, -0.1047198F); Flap2 = new ModelRenderer(this, 0, 23); Flap2.addBox(0F, 0F, -4F, 10, 1, 8); Flap2.setRotationPoint(-8F, 23F, 0F); Flap2.setTextureSize(64, 32); Flap2.mirror = true; setRotation(Flap2, 0F, 0F, -0.2094395F); Flap3 = new ModelRenderer(this, 34, 23); Flap3.addBox(0F, 0F, -3F, 9, 1, 6); Flap3.setRotationPoint(-8F, 23F, 0F); Flap3.setTextureSize(64, 32); Flap3.mirror = true; setRotation(Flap3, 0F, 0F, -0.3141593F); Base = new ModelRenderer(this, 0, 0); Base.addBox(0F, 0F, -5F, 11, 1, 10); Base.setRotationPoint(-8F, 23F, 0F); Base.setTextureSize(64, 32); Base.mirror = true; setRotation(Base, 0F, 0F, 0F); Top = new ModelRenderer(this, 0, 14); Top.addBox(0F, 0F, -4F, 11, 1, 8); Top.setRotationPoint(-8F, 23F, 0F); Top.setTextureSize(64, 32); Top.mirror = true; setRotation(Top, 0F, 0F, -0.5235988F); } 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); Flap4.render(f5); Handle.render(f5); Flap1.render(f5); Flap2.render(f5); Flap3.render(f5); Base.render(f5); Top.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } public void renderModel(int press, float f) { Flap4.render(f); Handle.render(f); Flap1.render(f); Flap2.render(f); Flap3.render(f); Base.render(f); Top.render(f); } public void rotate(int p) { Top.rotateAngleZ = Handle.rotateAngleZ = -getRotationForPart(p,5); Flap4.rotateAngleZ = -getRotationForPart(p,4); Flap3.rotateAngleZ = -getRotationForPart(p,3); Flap2.rotateAngleZ = -getRotationForPart(p,2); Flap1.rotateAngleZ = -getRotationForPart(p,1); } public float getRotationForPart(int press, int part) { float angle = (float)Math.toRadians(50-press); return (angle/5) * part; } }