From 0cfe8fdee756cf966dcb4cfe198b743ca1e6925f Mon Sep 17 00:00:00 2001 From: Matthew Messinger Date: Sun, 4 Dec 2016 02:19:37 -0500 Subject: [PATCH] sync the armor better. This also fixes pegasus wings while riding. --- .../model/AbstractPonyModel.java | 1 + .../minelittlepony/model/PegasusWings.java | 7 -- .../model/pony/ModelPlayerPony.java | 21 ++--- .../model/pony/ModelVillagerPony.java | 6 +- .../model/pony/armor/ModelPonyArmor.java | 79 ++++++++----------- .../renderer/layer/LayerPonyArmor.java | 3 +- 6 files changed, 50 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/minelittlepony/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/model/AbstractPonyModel.java index 37352e72..b04936bd 100644 --- a/src/main/java/com/minelittlepony/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/model/AbstractPonyModel.java @@ -230,6 +230,7 @@ public abstract class AbstractPonyModel extends ModelPlayer { this.isFlying = pony.isFlying; this.isSleeping = pony.isSleeping; this.metadata = pony.metadata; + this.motionPitch = pony.motionPitch; } } diff --git a/src/main/java/com/minelittlepony/model/PegasusWings.java b/src/main/java/com/minelittlepony/model/PegasusWings.java index 2c8eb838..857d359f 100644 --- a/src/main/java/com/minelittlepony/model/PegasusWings.java +++ b/src/main/java/com/minelittlepony/model/PegasusWings.java @@ -1,8 +1,5 @@ package com.minelittlepony.model; -import com.minelittlepony.model.AbstractPonyModel; -import com.minelittlepony.model.BodyPart; -import com.minelittlepony.model.PonyModelConstants; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; @@ -132,10 +129,6 @@ public class PegasusWings extends ModelBase implements PonyModelConstants { @Override public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { - super.render(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - - pony.transform(BodyPart.BODY); - pony.bipedBody.postRender(scale); if (pony.metadata.getRace() != null && pony.metadata.getRace().hasWings()) { if (!pony.isFlying && !pony.isSneak) { diff --git a/src/main/java/com/minelittlepony/model/pony/ModelPlayerPony.java b/src/main/java/com/minelittlepony/model/pony/ModelPlayerPony.java index 9b88052f..3a803936 100644 --- a/src/main/java/com/minelittlepony/model/pony/ModelPlayerPony.java +++ b/src/main/java/com/minelittlepony/model/pony/ModelPlayerPony.java @@ -497,7 +497,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst for (int i7 = 0; i7 < tailstop; ++i7) { setRotationPoint(this.Tail[i7], TAIL_RP_X, TAIL_RP_Y, TAIL_RP_Z_SNEAK); - this.Tail[i7].rotateAngleX = -BODY_ROTATE_ANGLE_X_SNEAK; + this.Tail[i7].rotateAngleX = -BODY_ROTATE_ANGLE_X_SNEAK + 0.1F; } } @@ -580,9 +580,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst pushMatrix(); this.transform(BodyPart.HEAD); - this.renderHead(); - this.bipedHead.postRender(scale); - this.horn.render(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); + this.renderHead(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); popMatrix(); pushMatrix(); @@ -592,8 +590,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst pushMatrix(); this.transform(BodyPart.BODY); - this.renderBody(); - this.wings.render(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); + this.renderBody(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); this.renderTail(); popMatrix(); @@ -603,9 +600,12 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst popMatrix(); } - protected void renderHead() { + protected void renderHead(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { this.bipedHead.render(this.scale); this.bipedHeadwear.render(this.scale); + this.bipedHead.postRender(scale); + this.horn.render(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); + } protected void renderNeck() { @@ -615,7 +615,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst } } - protected void renderBody() { + protected void renderBody(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { this.bipedBody.render(this.scale); if (this.textureHeight == 64) { this.bipedBodyWear.render(this.scale); @@ -623,6 +623,9 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst for (PlaneRenderer aBodypiece : this.Bodypiece) { aBodypiece.render(this.scale); } + this.bipedBody.postRender(scale); + this.wings.render(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, this.scale); + } @@ -632,7 +635,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst var3 = 0; } - this.bipedBody.postRender(this.scale); +// this.bipedBody.postRender(this.scale); for (int k = 0; k < var3; ++k) { this.Tail[k].render(this.scale); diff --git a/src/main/java/com/minelittlepony/model/pony/ModelVillagerPony.java b/src/main/java/com/minelittlepony/model/pony/ModelVillagerPony.java index dd504e1d..d0e07a23 100644 --- a/src/main/java/com/minelittlepony/model/pony/ModelVillagerPony.java +++ b/src/main/java/com/minelittlepony/model/pony/ModelVillagerPony.java @@ -37,10 +37,10 @@ public class ModelVillagerPony extends ModelPlayerPony { } @Override - protected void renderBody() { - super.renderBody(); + protected void renderBody(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { + super.renderBody(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - this.bipedBody.postRender(scale); + this.bipedBody.postRender(this.scale); if (profession < 2) { for (PlaneRenderer aVillagerBagPiece : this.VillagerBagPiece) { aVillagerBagPiece.render(this.scale); diff --git a/src/main/java/com/minelittlepony/model/pony/armor/ModelPonyArmor.java b/src/main/java/com/minelittlepony/model/pony/armor/ModelPonyArmor.java index 70c076d3..0646ed70 100644 --- a/src/main/java/com/minelittlepony/model/pony/armor/ModelPonyArmor.java +++ b/src/main/java/com/minelittlepony/model/pony/armor/ModelPonyArmor.java @@ -29,12 +29,6 @@ public class ModelPonyArmor extends ModelPlayerPony { this.bipedBody.rotateAngleY = bodySwingRotation * 0.2F; - this.bipedHead.offsetY = 0f; - this.bipedHead.offsetZ = 0f; - this.extHead[0].offsetY = 0f; - this.extHead[0].offsetZ = 0f; - this.extHead[1].offsetY = 0f; - this.extHead[1].offsetZ = 0f; this.setLegs(limbSwing, limbSwingAmount, ageInTicks, entityIn); this.holdItem(limbSwingAmount); this.swingItem(entityIn, this.swingProgress); @@ -45,21 +39,20 @@ public class ModelPonyArmor extends ModelPlayerPony { } else if (this.isRiding) { this.adjustBody(BODY_ROTATE_ANGLE_X_RIDING, BODY_RP_Y_RIDING, BODY_RP_Z_RIDING); - this.bipedHead.offsetY = .1f; - this.bipedHead.offsetZ = .1f; - this.extHead[0].offsetY = .1f; - this.extHead[0].offsetZ = .1f; - this.extHead[1].offsetY = .1f; - this.extHead[1].offsetZ = .1f; this.bipedLeftLeg.rotationPointZ = 15; - this.bipedLeftLeg.rotationPointY = 21; - this.bipedLeftLeg.rotateAngleX = (float) (Math.PI * 1.5); - this.bipedLeftLeg.rotateAngleY = -.2f; + this.bipedLeftLeg.rotationPointY = 10; + this.bipedLeftLeg.rotateAngleX = (float) (Math.PI * -0.25); + this.bipedLeftLeg.rotateAngleY = (float) (Math.PI * -0.2); this.bipedRightLeg.rotationPointZ = 15; - this.bipedRightLeg.rotationPointY = 21; - this.bipedRightLeg.rotateAngleX = (float) (Math.PI * 1.5); - this.bipedRightLeg.rotateAngleY = .2f; + this.bipedRightLeg.rotationPointY = 10; + this.bipedRightLeg.rotateAngleX = (float) (Math.PI * -0.25); + this.bipedRightLeg.rotateAngleY = (float) (Math.PI * 0.2); + + + this.bipedLeftArm.rotateAngleZ = (float) (Math.PI * -0.06); + this.bipedRightArm.rotateAngleZ = (float) (Math.PI * 0.06); + } else { this.adjustBody(BODY_ROTATE_ANGLE_X_NOTSNEAK, BODY_RP_Y_NOTSNEAK, BODY_RP_Z_NOTSNEAK); @@ -71,13 +64,14 @@ public class ModelPonyArmor extends ModelPlayerPony { } + if (this.isSleeping) { this.ponySleep(); } this.aimBow(leftArmPose, rightArmPose, ageInTicks); - // this.fixSpecialRotationPoints(aniparams.move); + } @Override @@ -115,7 +109,7 @@ public class ModelPonyArmor extends ModelPlayerPony { } @Override - protected void renderHead() { + protected void renderHead(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { this.bipedHead.render(this.scale); this.extHead[0].render(this.scale); this.extHead[1].render(this.scale); @@ -127,7 +121,7 @@ public class ModelPonyArmor extends ModelPlayerPony { } @Override - protected void renderBody() { + protected void renderBody(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { this.bipedBody.render(this.scale); this.Bodypiece.render(this.scale); this.extBody.render(this.scale); @@ -139,6 +133,12 @@ public class ModelPonyArmor extends ModelPlayerPony { @Override protected void renderLegs() { + if (!isSneak) { + boolean isLegs = this.extBody.showModel; + this.extBody.showModel = true; + this.extBody.postRender(this.scale); + this.extBody.showModel = isLegs; + } this.bipedLeftArm.render(this.scale); this.bipedRightArm.render(this.scale); this.bipedLeftLeg.render(this.scale); @@ -196,25 +196,14 @@ public class ModelPonyArmor extends ModelPlayerPony { @Override protected void initHeadPositions(float yOffset, float stretch) { - this.bipedHead.addBox(-4.0F + HEAD_CENTRE_X, -4.0F + HEAD_CENTRE_Y, - -4.0F + HEAD_CENTRE_Z, 8, 8, 8, - stretch * 1.1F); + this.bipedHead.addBox(-4.0F + HEAD_CENTRE_X, -4.0F + HEAD_CENTRE_Y, -4.0F + HEAD_CENTRE_Z, 8, 8, 8, stretch * 1.1F); this.bipedHead.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - this.extHead[0].addBox(-4.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, - 1.0F + HEAD_CENTRE_Z, 2, 2, - 2, stretch * 0.5F); - this.extHead[0].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, - HEAD_RP_Z); - this.extHead[1].addBox(2.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, - 1.0F + HEAD_CENTRE_Z, 2, 2, - 2, stretch * 0.5F); - this.extHead[1].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, - HEAD_RP_Z); - this.bipedHeadwear.addBox(-4.0F + HEAD_CENTRE_X, -4.0F + HEAD_CENTRE_Y, - -4.0F + HEAD_CENTRE_Z, 8, 8, 8, - stretch * 1.1F + 0.5F); - this.bipedHeadwear.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, - HEAD_RP_Z); + this.extHead[0].addBox(-4.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, 1.0F + HEAD_CENTRE_Z, 2, 2, 2, stretch * 0.5F); + this.extHead[0].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); + this.extHead[1].addBox(2.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, 1.0F + HEAD_CENTRE_Z, 2, 2, 2, stretch * 0.5F); + this.extHead[1].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); + this.bipedHeadwear.addBox(-4.0F + HEAD_CENTRE_X, -4.0F + HEAD_CENTRE_Y, -4.0F + HEAD_CENTRE_Z, 8, 8, 8, stretch * 1.1F + 0.5F); + this.bipedHeadwear.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); } @Override @@ -222,21 +211,17 @@ public class ModelPonyArmor extends ModelPlayerPony { this.bipedBody.addBox(-4.0F, 4.0F, -2.0F, 8, 8, 4, stretch); this.bipedBody.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); this.Bodypiece.addBox(-4.0F, 4.0F, 6.0F, 8, 8, 8, stretch); - this.Bodypiece.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, - HEAD_RP_Z); + this.Bodypiece.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); this.extBody.addBox(-4.0F, 4.0F, -2.0F, 8, 8, 16, stretch); - this.extBody.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, - HEAD_RP_Z); + this.extBody.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); } @Override protected void initLegPositions(float yOffset, float stretch) { super.initLegPositions(yOffset, stretch); - this.extLegs[0].addBox(-2.0F + THIRDP_ARM_CENTRE_X, -6.0F + THIRDP_ARM_CENTRE_Y, - -2.0F + THIRDP_ARM_CENTRE_Z, 4, 12, 4, stretch); + this.extLegs[0].addBox(-2.0F + THIRDP_ARM_CENTRE_X, -6.0F + THIRDP_ARM_CENTRE_Y, -2.0F + THIRDP_ARM_CENTRE_Z, 4, 12, 4, stretch); this.extLegs[0].setRotationPoint(-3.0F, 0.0F + yOffset, 0.0F); - this.extLegs[1].addBox(-2.0F + THIRDP_ARM_CENTRE_X, -6.0F + THIRDP_ARM_CENTRE_Y, - -2.0F + THIRDP_ARM_CENTRE_Z, 4, 12, 4, stretch); + this.extLegs[1].addBox(-2.0F + THIRDP_ARM_CENTRE_X, -6.0F + THIRDP_ARM_CENTRE_Y, -2.0F + THIRDP_ARM_CENTRE_Z, 4, 12, 4, stretch); this.extLegs[1].setRotationPoint(3.0F, 0.0F + yOffset, 0.0F); } diff --git a/src/main/java/com/minelittlepony/renderer/layer/LayerPonyArmor.java b/src/main/java/com/minelittlepony/renderer/layer/LayerPonyArmor.java index 8cb186ed..3f88d72d 100644 --- a/src/main/java/com/minelittlepony/renderer/layer/LayerPonyArmor.java +++ b/src/main/java/com/minelittlepony/renderer/layer/LayerPonyArmor.java @@ -60,13 +60,14 @@ public class LayerPonyArmor implements LayerRenderer { ItemStack itemstack = entity.getItemStackFromSlot(armorSlot); if (itemstack != null && itemstack.getItem() instanceof ItemArmor) { + ItemArmor itemarmor = (ItemArmor) itemstack.getItem(); boolean isLegs = armorSlot == EntityEquipmentSlot.CHEST; AbstractPonyModel modelbase = isLegs ? pony.getArmor().modelArmor : pony.getArmor().modelArmorChestplate; modelbase = getArmorModel(entity, itemstack, isLegs ? 2 : 1, modelbase); modelbase.setModelAttributes(this.pony.getModel()); - modelbase.setLivingAnimations(entity, limbSwing, limbSwingAmount, partialTicks); + modelbase.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entity); prepareToRender((ModelPonyArmor) modelbase, armorSlot); this.renderer.bindTexture(getArmorTexture(entity, itemstack, isLegs ? 2 : 1, null));