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.isSleeping = pony.isSleeping;
this.metadata = pony.metadata;
this.motionPitch = pony.motionPitch;
}
}

View file

@ -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) {

View file

@ -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);

View file

@ -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);

View file

@ -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);
}

View file

@ -60,13 +60,14 @@ public class LayerPonyArmor implements LayerRenderer<EntityLivingBase> {
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));