sync the armor better.

This also fixes pegasus wings while riding.
This commit is contained in:
Matthew Messinger 2016-12-04 02:19:37 -05:00
parent ada9b6033f
commit 0cfe8fdee7
6 changed files with 50 additions and 67 deletions

View file

@ -230,6 +230,7 @@ public abstract class AbstractPonyModel extends ModelPlayer {
this.isFlying = pony.isFlying; this.isFlying = pony.isFlying;
this.isSleeping = pony.isSleeping; this.isSleeping = pony.isSleeping;
this.metadata = pony.metadata; this.metadata = pony.metadata;
this.motionPitch = pony.motionPitch;
} }
} }

View file

@ -1,8 +1,5 @@
package com.minelittlepony.model; 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.ModelBase;
import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@ -132,10 +129,6 @@ public class PegasusWings extends ModelBase implements PonyModelConstants {
@Override @Override
public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { 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.metadata.getRace() != null && pony.metadata.getRace().hasWings()) {
if (!pony.isFlying && !pony.isSneak) { if (!pony.isFlying && !pony.isSneak) {

View file

@ -497,7 +497,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst
for (int i7 = 0; i7 < tailstop; ++i7) { for (int i7 = 0; i7 < tailstop; ++i7) {
setRotationPoint(this.Tail[i7], TAIL_RP_X, TAIL_RP_Y, TAIL_RP_Z_SNEAK); 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(); pushMatrix();
this.transform(BodyPart.HEAD); this.transform(BodyPart.HEAD);
this.renderHead(); this.renderHead(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
this.bipedHead.postRender(scale);
this.horn.render(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
popMatrix(); popMatrix();
pushMatrix(); pushMatrix();
@ -592,8 +590,7 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst
pushMatrix(); pushMatrix();
this.transform(BodyPart.BODY); this.transform(BodyPart.BODY);
this.renderBody(); this.renderBody(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
this.wings.render(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
this.renderTail(); this.renderTail();
popMatrix(); popMatrix();
@ -603,9 +600,12 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst
popMatrix(); 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.bipedHead.render(this.scale);
this.bipedHeadwear.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() { 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); this.bipedBody.render(this.scale);
if (this.textureHeight == 64) { if (this.textureHeight == 64) {
this.bipedBodyWear.render(this.scale); this.bipedBodyWear.render(this.scale);
@ -623,6 +623,9 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst
for (PlaneRenderer aBodypiece : this.Bodypiece) { for (PlaneRenderer aBodypiece : this.Bodypiece) {
aBodypiece.render(this.scale); 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; var3 = 0;
} }
this.bipedBody.postRender(this.scale); // this.bipedBody.postRender(this.scale);
for (int k = 0; k < var3; ++k) { for (int k = 0; k < var3; ++k) {
this.Tail[k].render(this.scale); this.Tail[k].render(this.scale);

View file

@ -37,10 +37,10 @@ public class ModelVillagerPony extends ModelPlayerPony {
} }
@Override @Override
protected void renderBody() { protected void renderBody(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) {
super.renderBody(); super.renderBody(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
this.bipedBody.postRender(scale); this.bipedBody.postRender(this.scale);
if (profession < 2) { if (profession < 2) {
for (PlaneRenderer aVillagerBagPiece : this.VillagerBagPiece) { for (PlaneRenderer aVillagerBagPiece : this.VillagerBagPiece) {
aVillagerBagPiece.render(this.scale); aVillagerBagPiece.render(this.scale);

View file

@ -29,12 +29,6 @@ public class ModelPonyArmor extends ModelPlayerPony {
this.bipedBody.rotateAngleY = bodySwingRotation * 0.2F; 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.setLegs(limbSwing, limbSwingAmount, ageInTicks, entityIn);
this.holdItem(limbSwingAmount); this.holdItem(limbSwingAmount);
this.swingItem(entityIn, this.swingProgress); this.swingItem(entityIn, this.swingProgress);
@ -45,21 +39,20 @@ public class ModelPonyArmor extends ModelPlayerPony {
} else if (this.isRiding) { } else if (this.isRiding) {
this.adjustBody(BODY_ROTATE_ANGLE_X_RIDING, BODY_RP_Y_RIDING, BODY_RP_Z_RIDING); 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.rotationPointZ = 15;
this.bipedLeftLeg.rotationPointY = 21; this.bipedLeftLeg.rotationPointY = 10;
this.bipedLeftLeg.rotateAngleX = (float) (Math.PI * 1.5); this.bipedLeftLeg.rotateAngleX = (float) (Math.PI * -0.25);
this.bipedLeftLeg.rotateAngleY = -.2f; this.bipedLeftLeg.rotateAngleY = (float) (Math.PI * -0.2);
this.bipedRightLeg.rotationPointZ = 15; this.bipedRightLeg.rotationPointZ = 15;
this.bipedRightLeg.rotationPointY = 21; this.bipedRightLeg.rotationPointY = 10;
this.bipedRightLeg.rotateAngleX = (float) (Math.PI * 1.5); this.bipedRightLeg.rotateAngleX = (float) (Math.PI * -0.25);
this.bipedRightLeg.rotateAngleY = .2f; 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 { } else {
this.adjustBody(BODY_ROTATE_ANGLE_X_NOTSNEAK, BODY_RP_Y_NOTSNEAK, BODY_RP_Z_NOTSNEAK); 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) { if (this.isSleeping) {
this.ponySleep(); this.ponySleep();
} }
this.aimBow(leftArmPose, rightArmPose, ageInTicks); this.aimBow(leftArmPose, rightArmPose, ageInTicks);
// this.fixSpecialRotationPoints(aniparams.move);
} }
@Override @Override
@ -115,7 +109,7 @@ public class ModelPonyArmor extends ModelPlayerPony {
} }
@Override @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.bipedHead.render(this.scale);
this.extHead[0].render(this.scale); this.extHead[0].render(this.scale);
this.extHead[1].render(this.scale); this.extHead[1].render(this.scale);
@ -127,7 +121,7 @@ public class ModelPonyArmor extends ModelPlayerPony {
} }
@Override @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.bipedBody.render(this.scale);
this.Bodypiece.render(this.scale); this.Bodypiece.render(this.scale);
this.extBody.render(this.scale); this.extBody.render(this.scale);
@ -139,6 +133,12 @@ public class ModelPonyArmor extends ModelPlayerPony {
@Override @Override
protected void renderLegs() { 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.bipedLeftArm.render(this.scale);
this.bipedRightArm.render(this.scale); this.bipedRightArm.render(this.scale);
this.bipedLeftLeg.render(this.scale); this.bipedLeftLeg.render(this.scale);
@ -196,25 +196,14 @@ public class ModelPonyArmor extends ModelPlayerPony {
@Override @Override
protected void initHeadPositions(float yOffset, float stretch) { protected void initHeadPositions(float yOffset, float stretch) {
this.bipedHead.addBox(-4.0F + HEAD_CENTRE_X, -4.0F + HEAD_CENTRE_Y, this.bipedHead.addBox(-4.0F + HEAD_CENTRE_X, -4.0F + HEAD_CENTRE_Y, -4.0F + HEAD_CENTRE_Z, 8, 8, 8, stretch * 1.1F);
-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.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, 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);
1.0F + HEAD_CENTRE_Z, 2, 2, this.extHead[0].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z);
2, stretch * 0.5F); 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[0].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, this.extHead[1].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z);
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.extHead[1].addBox(2.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, this.bipedHeadwear.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z);
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 @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.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.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.addBox(-4.0F, 4.0F, 6.0F, 8, 8, 8, stretch);
this.Bodypiece.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, this.Bodypiece.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z);
HEAD_RP_Z);
this.extBody.addBox(-4.0F, 4.0F, -2.0F, 8, 8, 16, stretch); this.extBody.addBox(-4.0F, 4.0F, -2.0F, 8, 8, 16, stretch);
this.extBody.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, this.extBody.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z);
HEAD_RP_Z);
} }
@Override @Override
protected void initLegPositions(float yOffset, float stretch) { protected void initLegPositions(float yOffset, float stretch) {
super.initLegPositions(yOffset, stretch); super.initLegPositions(yOffset, stretch);
this.extLegs[0].addBox(-2.0F + THIRDP_ARM_CENTRE_X, -6.0F + THIRDP_ARM_CENTRE_Y, 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);
-2.0F + THIRDP_ARM_CENTRE_Z, 4, 12, 4, stretch);
this.extLegs[0].setRotationPoint(-3.0F, 0.0F + yOffset, 0.0F); 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, 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);
-2.0F + THIRDP_ARM_CENTRE_Z, 4, 12, 4, stretch);
this.extLegs[1].setRotationPoint(3.0F, 0.0F + yOffset, 0.0F); this.extLegs[1].setRotationPoint(3.0F, 0.0F + yOffset, 0.0F);
} }

View file

@ -60,13 +60,14 @@ public class LayerPonyArmor implements LayerRenderer<EntityLivingBase> {
ItemStack itemstack = entity.getItemStackFromSlot(armorSlot); ItemStack itemstack = entity.getItemStackFromSlot(armorSlot);
if (itemstack != null && itemstack.getItem() instanceof ItemArmor) { if (itemstack != null && itemstack.getItem() instanceof ItemArmor) {
ItemArmor itemarmor = (ItemArmor) itemstack.getItem(); ItemArmor itemarmor = (ItemArmor) itemstack.getItem();
boolean isLegs = armorSlot == EntityEquipmentSlot.CHEST; boolean isLegs = armorSlot == EntityEquipmentSlot.CHEST;
AbstractPonyModel modelbase = isLegs ? pony.getArmor().modelArmor : pony.getArmor().modelArmorChestplate; AbstractPonyModel modelbase = isLegs ? pony.getArmor().modelArmor : pony.getArmor().modelArmorChestplate;
modelbase = getArmorModel(entity, itemstack, isLegs ? 2 : 1, modelbase); modelbase = getArmorModel(entity, itemstack, isLegs ? 2 : 1, modelbase);
modelbase.setModelAttributes(this.pony.getModel()); modelbase.setModelAttributes(this.pony.getModel());
modelbase.setLivingAnimations(entity, limbSwing, limbSwingAmount, partialTicks); modelbase.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entity);
prepareToRender((ModelPonyArmor) modelbase, armorSlot); prepareToRender((ModelPonyArmor) modelbase, armorSlot);
this.renderer.bindTexture(getArmorTexture(entity, itemstack, isLegs ? 2 : 1, null)); this.renderer.bindTexture(getArmorTexture(entity, itemstack, isLegs ? 2 : 1, null));