/******************************************************************************* * AbyssalCraft * Copyright (c) 2012 - 2017 Shinoow. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0.txt * * Contributors: * Shinoow - implementation ******************************************************************************/ package com.shinoow.abyssalcraft.client.model.entity; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; public class ModelShadowBeast extends ModelBase { public ModelRenderer head; public ModelRenderer btooth1; public ModelRenderer btooth2; public ModelRenderer btooth3; public ModelRenderer btooth4; public ModelRenderer btooth5; public ModelRenderer jaw; public ModelRenderer stooth1; public ModelRenderer stooth2; public ModelRenderer stooth3; public ModelRenderer stooth4; public ModelRenderer spine; public ModelRenderer leftshoulder; public ModelRenderer lsspike; public ModelRenderer larm1; public ModelRenderer larm2; public ModelRenderer laspike1; public ModelRenderer laspike2; public ModelRenderer lfinger1; public ModelRenderer lfinger3; public ModelRenderer lfinger2; public ModelRenderer lfinger4; public ModelRenderer rightshoulder; public ModelRenderer rsspike; public ModelRenderer rarm1; public ModelRenderer rarm2; public ModelRenderer raspike1; public ModelRenderer raspike2; public ModelRenderer rfinger1; public ModelRenderer rfinger2; public ModelRenderer rfinger3; public ModelRenderer rfinger4; public ModelRenderer pelvis; public ModelRenderer leftleg; public ModelRenderer rightleg; public ModelShadowBeast() { textureWidth = 128; textureHeight = 64; head = new ModelRenderer(this, 0, 0); head.addBox(-4.5F, -9F, -4.5F, 9, 9, 9); head.setRotationPoint(0F, -13F, -1F); head.setTextureSize(128, 64); head.mirror = true; setRotation(head, 0F, 0F, 0F); btooth1 = new ModelRenderer(this, 37, 4); btooth1.addBox(0F, 0F, 0F, 1, 2, 1); btooth1.setRotationPoint(-4.5F, 0F, -4.5F); btooth1.setTextureSize(128, 64); btooth1.mirror = true; setRotation(btooth1, 0F, 0F, 0F); head.addChild(btooth1); btooth2 = new ModelRenderer(this, 37, 4); btooth2.addBox(0F, 0F, 0F, 1, 2, 1); btooth2.setRotationPoint(-2.5F, 0F, -4.5F); btooth2.setTextureSize(128, 64); btooth2.mirror = true; setRotation(btooth2, 0F, 0F, 0F); head.addChild(btooth2); btooth3 = new ModelRenderer(this, 37, 4); btooth3.addBox(0F, 0F, 0F, 1, 2, 1); btooth3.setRotationPoint(-0.5F, 0F, -4.5F); btooth3.setTextureSize(128, 64); btooth3.mirror = true; setRotation(btooth3, 0F, 0F, 0F); head.addChild(btooth3); btooth4 = new ModelRenderer(this, 37, 4); btooth4.addBox(0F, 0F, 0F, 1, 2, 1); btooth4.setRotationPoint(1.5F, 0F, -4.5F); btooth4.setTextureSize(128, 64); btooth4.mirror = true; setRotation(btooth4, 0F, 0F, 0F); head.addChild(btooth4); btooth5 = new ModelRenderer(this, 37, 4); btooth5.addBox(0F, 0F, 0F, 1, 2, 1); btooth5.setRotationPoint(3.5F, 0F, -4.5F); btooth5.setTextureSize(128, 64); btooth5.mirror = true; setRotation(btooth5, 0F, 0F, 0F); head.addChild(btooth5); jaw = new ModelRenderer(this, 36, 0); jaw.addBox(-4.5F, 1.9F, -5F, 9, 1, 9); jaw.setRotationPoint(0,0,0); jaw.setTextureSize(128, 64); jaw.mirror = true; setRotation(jaw, 0.4461433F, 0F, 0F); head.addChild(jaw); stooth1 = new ModelRenderer(this, 37, 4); stooth1.addBox(0F, 0F, 0F, 1, 1, 1); stooth1.setRotationPoint(-3.5F, 0.9F, -5F); stooth1.setTextureSize(128, 64); stooth1.mirror = true; setRotation(stooth1, 0, 0F, 0F); jaw.addChild(stooth1); stooth2 = new ModelRenderer(this, 37, 4); stooth2.addBox(0F, 0F, 0F, 1, 1, 1); stooth2.setRotationPoint(-1.5F, 0.9F, -5F); stooth2.setTextureSize(128, 64); stooth2.mirror = true; setRotation(stooth2, 0, 0F, 0F); jaw.addChild(stooth2); stooth3 = new ModelRenderer(this, 37, 4); stooth3.addBox(0F, 0F, 0F, 1, 1, 1); stooth3.setRotationPoint(0.5F, 0.9F, -5F); stooth3.setTextureSize(128, 64); stooth3.mirror = true; setRotation(stooth3, 0, 0F, 0F); jaw.addChild(stooth3); stooth4 = new ModelRenderer(this, 37, 4); stooth4.addBox(0F, 0F, 0F, 1, 1, 1); stooth4.setRotationPoint(2.5F, 0.9F, -5F); stooth4.setTextureSize(128, 64); stooth4.mirror = true; setRotation(stooth4, 0, 0F, 0F); jaw.addChild(stooth4); spine = new ModelRenderer(this, 72, 0); spine.addBox(-2.5F, 0F, -2.5F, 5, 20, 5); spine.setRotationPoint(0F, -12F, -1F); spine.setTextureSize(128, 64); spine.mirror = true; setRotation(spine, 0.2974289F, 0F, 0F); leftshoulder = new ModelRenderer(this, 41, 11); leftshoulder.addBox(-8F, 0F, 0F, 8, 5, 7); leftshoulder.setRotationPoint(9.5F, -8F, -3F); leftshoulder.setTextureSize(128, 64); leftshoulder.mirror = true; setRotation(leftshoulder, 0F, 0F, 0.111544F); lsspike = new ModelRenderer(this, 0, 0); lsspike.addBox(0F, -4F, 0F, 1, 5, 1); lsspike.setRotationPoint(7F, -9F, 0F); lsspike.setTextureSize(128, 64); lsspike.mirror = true; setRotation(lsspike, 0F, 0F, 0.111544F); larm1 = new ModelRenderer(this, 0, 19); larm1.addBox(0F, -1F, -1.5F, 3, 11, 3); larm1.setRotationPoint(5F, -6.5F, 0.5F); larm1.setTextureSize(128, 64); larm1.mirror = true; setRotation(larm1, 0F, 0F, 0F); larm2 = new ModelRenderer(this, 0, 19); larm2.addBox(0F, 6F, 5F, 3, 7, 3); larm2.setRotationPoint(0,0,0); larm2.setTextureSize(128, 64); larm2.mirror = true; setRotation(larm2, -0.7807508F, 0F, 0F); larm1.addChild(larm2); laspike1 = new ModelRenderer(this, 0, 0); laspike1.addBox(6F, -1F, -0.5F, 1, 4, 1); laspike1.setRotationPoint(0,0,0); laspike1.setTextureSize(128, 64); laspike1.mirror = true; setRotation(laspike1, 0F, 0F, 0.8179311F); larm1.addChild(laspike1); laspike2 = new ModelRenderer(this, 34, 0); laspike2.addBox(-1F, 10F, 5.5F, 4, 1, 1); laspike2.setRotationPoint(0,0,0); laspike2.setTextureSize(128, 64); laspike2.mirror = true; setRotation(laspike2, -0.7744724F, -0.2617994F, -0.2617994F); larm1.addChild(laspike2); lfinger1 = new ModelRenderer(this, 30, 0); lfinger1.addBox(3F, 11F, 6F, 1, 5, 1); lfinger1.setRotationPoint(0,0,0); lfinger1.setTextureSize(128, 64); lfinger1.mirror = true; setRotation(lfinger1, -0.7807556F, 0F, 0F); larm1.addChild(lfinger1); lfinger3 = new ModelRenderer(this, 30, 0); lfinger3.addBox(1F, 11F, 4F, 1, 5, 1); lfinger3.setRotationPoint(0,0,0); lfinger3.setTextureSize(128, 64); lfinger3.mirror = true; setRotation(lfinger3, -0.7807556F, 0F, 0F); larm1.addChild(lfinger3); lfinger2 = new ModelRenderer(this, 30, 0); lfinger2.addBox(-1F, 11F, 6F, 1, 5, 1); lfinger2.setRotationPoint(0,0,0); lfinger2.setTextureSize(128, 64); lfinger2.mirror = true; setRotation(lfinger2, -0.7807556F, 0F, 0F); larm1.addChild(lfinger2); lfinger4 = new ModelRenderer(this, 30, 0); lfinger4.addBox(1F, 11F, 8F, 1, 5, 1); lfinger4.setRotationPoint(0,0,0); lfinger4.setTextureSize(128, 64); lfinger4.mirror = true; setRotation(lfinger4, -0.7807556F, 0F, 0F); larm1.addChild(lfinger4); rightshoulder = new ModelRenderer(this, 41, 11); rightshoulder.addBox(0F, 0F, 0F, 8, 5, 7); rightshoulder.setRotationPoint(-9.5F, -8F, -3F); rightshoulder.setTextureSize(128, 64); rightshoulder.mirror = true; setRotation(rightshoulder, 0F, 0F, -0.1115358F); rsspike = new ModelRenderer(this, 0, 0); rsspike.addBox(0F, -4F, 0F, 1, 5, 1); rsspike.setRotationPoint(-8F, -9F, 0F); rsspike.setTextureSize(128, 64); rsspike.mirror = true; setRotation(rsspike, 0F, 0F, -0.111544F); rarm1 = new ModelRenderer(this, 0, 19); rarm1.addBox(-3F, -1F, -1.5F, 3, 11, 3); rarm1.setRotationPoint(-5F, -6.5F, 0.5F); rarm1.setTextureSize(128, 64); rarm1.mirror = true; setRotation(rarm1, 0F, 0F, 0F); rarm2 = new ModelRenderer(this, 0, 19); rarm2.addBox(-3F, 6F, 5F, 3, 7, 3); rarm2.setRotationPoint(0,0,0); rarm2.setTextureSize(128, 64); rarm2.mirror = true; setRotation(rarm2, -0.7807508F, 0F, 0F); rarm1.addChild(rarm2); raspike1 = new ModelRenderer(this, 0, 0); raspike1.addBox(-7F, -1F, -0.5F, 1, 4, 1); raspike1.setRotationPoint(0,0,0); raspike1.setTextureSize(128, 64); raspike1.mirror = true; setRotation(raspike1, 0F, 0F, -0.8179294F); rarm1.addChild(raspike1); raspike2 = new ModelRenderer(this, 34, 0); raspike2.addBox(-3F, 10F, 5.5F, 4, 1, 1); raspike2.setRotationPoint(0,0,0); raspike2.setTextureSize(128, 64); raspike2.mirror = true; setRotation(raspike2, -0.7807556F, 0.2617994F, 0.2617994F); rarm1.addChild(raspike2); rfinger1 = new ModelRenderer(this, 30, 0); rfinger1.addBox(0F, 11F, 6F, 1, 5, 1); rfinger1.setRotationPoint(0,0,0); rfinger1.setTextureSize(128, 64); rfinger1.mirror = true; setRotation(rfinger1, -0.7807556F, 0F, 0F); rarm1.addChild(rfinger1); rfinger2 = new ModelRenderer(this, 30, 0); rfinger2.addBox(-4F, 11F, 6F, 1, 5, 1); rfinger2.setRotationPoint(0,0,0); rfinger2.setTextureSize(128, 64); rfinger2.mirror = true; setRotation(rfinger2, -0.7807556F, 0F, 0F); rarm1.addChild(rfinger2); rfinger3 = new ModelRenderer(this, 30, 0); rfinger3.addBox(-2F, 11F, 4F, 1, 5, 1); rfinger3.setRotationPoint(0,0,0); rfinger3.setTextureSize(128, 64); rfinger3.mirror = true; setRotation(rfinger3, -0.7807556F, 0F, 0F); rarm1.addChild(rfinger3); rfinger4 = new ModelRenderer(this, 30, 0); rfinger4.addBox(-2F, 11F, 8F, 1, 5, 1); rfinger4.setRotationPoint(0,0,0); rfinger4.setTextureSize(128, 64); rfinger4.mirror = true; setRotation(rfinger4, -0.7807556F, 0F, 0F); rarm1.addChild(rfinger4); pelvis = new ModelRenderer(this, 37, 24); pelvis.addBox(0F, 0F, -1F, 12, 5, 5); pelvis.setRotationPoint(-6F, 7F, 3F); pelvis.setTextureSize(128, 64); pelvis.mirror = true; setRotation(pelvis, 0.2974216F, 0F, 0F); leftleg = new ModelRenderer(this, 16, 18); leftleg.addBox(-2.5F, 0F, -2.5F, 5, 8, 5); leftleg.setRotationPoint(3.5F, 11F, 6F); leftleg.setTextureSize(128, 64); leftleg.mirror = true; setRotation(leftleg, 0.2974216F, 0F, 0F); rightleg = new ModelRenderer(this, 16, 18); rightleg.addBox(-2.5F, 0F, -2.5F, 5, 8, 5); rightleg.setRotationPoint(-3.5F, 11F, 6F); rightleg.setTextureSize(128, 64); rightleg.mirror = true; setRotation(rightleg, 0.2974216F, 0F, 0F); } @Override 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); head.render(f5); spine.render(f5); leftshoulder.render(f5); lsspike.render(f5); larm1.render(f5); // larm2.render(f5); // laspike1.render(f5); // laspike2.render(f5); // lfinger1.render(f5); // lfinger3.render(f5); // lfinger2.render(f5); // lfinger4.render(f5); rightshoulder.render(f5); rsspike.render(f5); rarm1.render(f5); // rarm2.render(f5); // raspike1.render(f5); // raspike2.render(f5); // rfinger1.render(f5); // rfinger2.render(f5); // rfinger3.render(f5); // rfinger4.render(f5); pelvis.render(f5); leftleg.render(f5); rightleg.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 f, float f1, float f2, float f3, float f4, float f5, Entity entity) { head.rotateAngleY = f3 / (180F / (float)Math.PI); head.rotateAngleX = f4 / (180F / (float)Math.PI); rightleg.rotateAngleX = MathHelper.cos(f * 0.3331F) * 0.07F * f1; rightleg.rotateAngleY = 0.0F; leftleg.rotateAngleX = MathHelper.cos(f * 0.3331F + (float)Math.PI) * 0.07F * f1; leftleg.rotateAngleY = 0.0F; float f6 = MathHelper.sin(swingProgress * (float)Math.PI); float f7 = MathHelper.sin((1.0F - (1.0F - swingProgress) * (1.0F - swingProgress)) * (float)Math.PI); rarm1.rotateAngleZ = 0.0F; larm1.rotateAngleZ = 0.0F; rarm1.rotateAngleY = -(0.1F - f6 * 0.6F); larm1.rotateAngleY = 0.1F - f6 * 0.6F; rarm1.rotateAngleX = -((float)Math.PI / 7.2F); larm1.rotateAngleX = -((float)Math.PI / 7.2F); rarm1.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; larm1.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; rarm1.rotateAngleZ += MathHelper.cos(f2 * 0.09F) * 0.05F + 0.05F; larm1.rotateAngleZ -= MathHelper.cos(f2 * 0.09F) * 0.05F + 0.05F; rarm1.rotateAngleX += MathHelper.sin(f2 * 0.067F) * 0.05F; larm1.rotateAngleX -= MathHelper.sin(f2 * 0.067F) * 0.05F; } }