package com.bioxx.tfc2.rendering.model; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; public class ModelBoar extends ModelBase { ModelRenderer LegFrontLeftLower; ModelRenderer LegRearRightLower; ModelRenderer LegFrontRightLower; ModelRenderer LegRearLeftLower; ModelRenderer HEAD; ModelRenderer BODY; public ModelBoar() { textureWidth = 64; textureHeight = 32; setTextureOffset("HEAD.Head", 0, 0); setTextureOffset("HEAD.Snout", 1, 14); setTextureOffset("HEAD.TuskLeft", 0, 22); setTextureOffset("HEAD.TuskRight", 0, 22); setTextureOffset("BODY.Torso", 16, 6); setTextureOffset("BODY.Tail", 52, 0); LegFrontLeftLower = new ModelRenderer(this, 56, 0); LegFrontLeftLower.addBox(-1F, 0F, -1F, 2, 7, 2); LegFrontLeftLower.setRotationPoint(4F, 17F, 4F); LegFrontLeftLower.setTextureSize(64, 32); LegFrontLeftLower.mirror = true; setRotation(LegFrontLeftLower, 0F, 0F, 0F); LegRearRightLower = new ModelRenderer(this, 56, 0); LegRearRightLower.addBox(-1F, 0F, -1F, 2, 7, 2); LegRearRightLower.setRotationPoint(-2F, 17F, 14F); LegRearRightLower.setTextureSize(64, 32); LegRearRightLower.mirror = true; setRotation(LegRearRightLower, 0F, 0F, 0F); LegFrontRightLower = new ModelRenderer(this, 56, 0); LegFrontRightLower.addBox(-1F, 0F, -1F, 2, 7, 2); LegFrontRightLower.setRotationPoint(-2F, 17F, 4F); LegFrontRightLower.setTextureSize(64, 32); LegFrontRightLower.mirror = true; setRotation(LegFrontRightLower, 0F, 0F, 0F); LegRearLeftLower = new ModelRenderer(this, 56, 0); LegRearLeftLower.addBox(-1F, 0F, -1F, 2, 7, 2); LegRearLeftLower.setRotationPoint(4F, 17F, 14F); LegRearLeftLower.setTextureSize(64, 32); LegRearLeftLower.mirror = true; setRotation(LegRearLeftLower, 0F, 0F, 0F); HEAD = new ModelRenderer(this, "HEAD"); HEAD.setRotationPoint(0F, 14F, -1F); setRotation(HEAD, 0F, 0F, 0F); HEAD.mirror = true; HEAD.addBox("Head", -2F, -6F, -3F, 6, 8, 5); HEAD.addBox("Snout", -1F, -3F, -7F, 4, 4, 4); HEAD.addBox("TuskLeft", 3F, -1F, -6F, 1, 2, 1); HEAD.addBox("TuskRight", -2F, -1F, -6F, 1, 2, 1); BODY = new ModelRenderer(this, "BODY"); BODY.setRotationPoint(0F, 13F, 13F); setRotation(BODY, 0F, 0F, 0F); BODY.mirror = true; BODY.addBox("Torso", -3F, -6F, -12F, 8, 10, 16); BODY.addBox("Tail", 0.5F, -5F, 4F, 1, 5, 1); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } /** * Sets the models various rotation angles then renders the model. */ @Override public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale) { this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn); if (this.isChild) { float f6 = 2.0F; GlStateManager.pushMatrix(); HEAD.render(scale); GlStateManager.popMatrix(); GlStateManager.pushMatrix(); GlStateManager.scale(1.0F / f6, 1.0F / f6, 1.0F / f6); GlStateManager.translate(0.0F, 24.0F * scale, 0.0F); LegFrontLeftLower.render(scale); LegRearRightLower.render(scale); LegFrontRightLower.render(scale); LegRearLeftLower.render(scale); BODY.render(scale); GlStateManager.popMatrix(); } else { GlStateManager.pushMatrix(); GlStateManager.translate(0.0F, 0.0F, -0.5F); LegFrontLeftLower.render(scale); LegRearRightLower.render(scale); LegFrontRightLower.render(scale); LegRearLeftLower.render(scale); HEAD.render(scale); BODY.render(scale); GlStateManager.popMatrix(); } } /** * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms * and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how * "far" arms and legs can swing at most. */ @Override public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_) { float f6 = (180F / (float)Math.PI); float rotationDiv = 2; this.HEAD.rotateAngleX = p_78087_5_ / (180F / (float)Math.PI); this.HEAD.rotateAngleY = p_78087_4_ / (180F / (float)Math.PI); this.BODY.rotateAngleX = 0;//((float)Math.PI / 2F); this.LegFrontLeftLower.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.4F * p_78087_2_/ rotationDiv; this.LegRearLeftLower.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float)Math.PI) * 1.4F * p_78087_2_/ rotationDiv; this.LegFrontRightLower.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float)Math.PI) * 1.4F * p_78087_2_/ rotationDiv; this.LegRearRightLower.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.4F * p_78087_2_/ rotationDiv; } }