diff --git a/src/main/java/com/minelittlepony/model/components/BatWings.java b/src/main/java/com/minelittlepony/model/components/BatWings.java index c0cf4299..3945c8ff 100644 --- a/src/main/java/com/minelittlepony/model/components/BatWings.java +++ b/src/main/java/com/minelittlepony/model/components/BatWings.java @@ -13,10 +13,8 @@ public class BatWings extends Pegas @Override public void init(float yOffset, float stretch) { - int x = 57; - - leftWing = new ModelBatWing(pegasus, false, false, yOffset, stretch, x, 16); - rightWing = new ModelBatWing(pegasus, true, false, yOffset, stretch, x - 1, 16); + leftWing = new ModelBatWing<>(pegasus, false, false, yOffset, stretch, 16); + rightWing = new ModelBatWing<>(pegasus, true, false, yOffset, stretch, 16); } @Override diff --git a/src/main/java/com/minelittlepony/model/components/BugWings.java b/src/main/java/com/minelittlepony/model/components/BugWings.java index 40f67c2c..c662950e 100644 --- a/src/main/java/com/minelittlepony/model/components/BugWings.java +++ b/src/main/java/com/minelittlepony/model/components/BugWings.java @@ -11,10 +11,8 @@ public class BugWings extends Pegas @Override public void init(float yOffset, float stretch) { - int x = 57; - - leftWing = new ModelBugWing(pegasus, false, false, yOffset, stretch, x, 16); - rightWing = new ModelBugWing(pegasus, true, false, yOffset, stretch, x - 1, 16); + leftWing = new ModelBugWing<>(pegasus, false, false, yOffset, stretch, 16); + rightWing = new ModelBugWing<>(pegasus, true, false, yOffset, stretch, 16); } @Override diff --git a/src/main/java/com/minelittlepony/model/components/ModelBatWing.java b/src/main/java/com/minelittlepony/model/components/ModelBatWing.java index ce52e577..272ca830 100644 --- a/src/main/java/com/minelittlepony/model/components/ModelBatWing.java +++ b/src/main/java/com/minelittlepony/model/components/ModelBatWing.java @@ -6,8 +6,8 @@ import com.minelittlepony.render.model.PlaneRenderer; public class ModelBatWing extends ModelWing { - public ModelBatWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texX, int texY) { - super(pegasus, right, legacy, y, scale, texX, texY); + public ModelBatWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texY) { + super(pegasus, right, legacy, y, scale, texY); } @Override @@ -27,22 +27,25 @@ public class ModelBatWing extends M protected void addFeathers(boolean right, boolean l, float rotationPointY, float scale) { float r = right ? -1 : 1; - extended.around((r * (EXT_WING_RP_X - 2)), EXT_WING_RP_Y + rotationPointY, EXT_WING_RP_Z - 2) + extended.around((r * (EXT_WING_RP_X - 2)), EXT_WING_RP_Y + rotationPointY - 1, EXT_WING_RP_Z - 3) .mirror(right) .rotateAngleY = r * 3; extended.child().tex(60, 16) + .mirror(right) // children are unaware of their parents being mirrored, sadly .rotate(0.1F, 0, 0) - .box(-0.4999F, -1, 0, 1, 8, 1, scale) + .box(-0.5F, -1, 0, 1, 8, 1, scale + 0.001F) // this was enough to fix z-fighting .child().tex(60, 16) + .mirror(right) .rotate(-0.5F, 0, 0) .around(0, -1, -2) - .box(-0.4998F, 0, 2, 1, 7, 1, scale); + .box(-0.5F, 0, 2, 1, 7, 1, scale); extended.child(0) .child().tex(60, 16) + .mirror(right) .rotate(-0.5F, 0, 0) .around(0, 4, -2.4F) - .box(-0.4997F, 0, 3, 1, 7, 1, scale); + .box(-0.5F, 0, 3, 1, 7, 1, scale); PlaneRenderer skin = new PlaneRenderer(pegasus) .tex(56, 32) diff --git a/src/main/java/com/minelittlepony/model/components/ModelBugWing.java b/src/main/java/com/minelittlepony/model/components/ModelBugWing.java index 3aad94c0..0dc71cc1 100644 --- a/src/main/java/com/minelittlepony/model/components/ModelBugWing.java +++ b/src/main/java/com/minelittlepony/model/components/ModelBugWing.java @@ -6,8 +6,8 @@ import com.minelittlepony.render.model.PlaneRenderer; public class ModelBugWing extends ModelWing { - public ModelBugWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texX, int texY) { - super(pegasus, right, legacy, y, scale, texX, texY); + public ModelBugWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texY) { + super(pegasus, right, legacy, y, scale, texY); } @Override @@ -24,14 +24,14 @@ public class ModelBugWing extends M .rotateAngleY = r * 3; PlaneRenderer primary = new PlaneRenderer(pegasus) - .tex(56, 17) + .tex(56, 16) .mirror(right) - .west(0, 0, -7, 15, 8, scale); + .west(r * -0.5F, 0, -7, 16, 8, scale); PlaneRenderer secondary = new PlaneRenderer(pegasus) .tex(56, 32) .rotate(-0.5F, r * 0.3F, r / 3) .mirror(right) - .west(0, 0, -7, 15, 8, scale); + .west(r, 0, -5, 16, 8, scale); extended.child(primary); extended.child(secondary); diff --git a/src/main/java/com/minelittlepony/model/components/ModelWing.java b/src/main/java/com/minelittlepony/model/components/ModelWing.java index c98ac623..d8a9b1f3 100644 --- a/src/main/java/com/minelittlepony/model/components/ModelWing.java +++ b/src/main/java/com/minelittlepony/model/components/ModelWing.java @@ -15,11 +15,11 @@ public class ModelWing implements P protected final PonyRenderer extended; protected final PonyRenderer folded; - public ModelWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texX, int texY) { + public ModelWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texY) { this.pegasus = pegasus; folded = new PonyRenderer(pegasus, 56, texY).mirror(legacy); - extended = new PonyRenderer(pegasus, texX, texY + 3); + extended = new PonyRenderer(pegasus, 56 + ((!right || legacy) ? 1 : 0), texY + 3); addClosedWing(right, y, scale); addFeathers(right, legacy, y, scale); diff --git a/src/main/java/com/minelittlepony/model/components/PegasusWings.java b/src/main/java/com/minelittlepony/model/components/PegasusWings.java index 213c0f16..26e793a6 100644 --- a/src/main/java/com/minelittlepony/model/components/PegasusWings.java +++ b/src/main/java/com/minelittlepony/model/components/PegasusWings.java @@ -26,12 +26,10 @@ public class PegasusWings implement @Override public void init(float yOffset, float stretch) { - int x = 57; + leftWing = new ModelWing<>(pegasus, false, false, yOffset, stretch, 32); + rightWing = new ModelWing<>(pegasus, true, false, yOffset, stretch, 16); - leftWing = new ModelWing<>(pegasus, false, false, yOffset, stretch, x, 32); - rightWing = new ModelWing<>(pegasus, true, false, yOffset, stretch, x - 1, 16); - - legacyWing = new ModelWing<>(pegasus, true, true, yOffset, stretch, x, 32); + legacyWing = new ModelWing<>(pegasus, true, true, yOffset, stretch, 32); } public ModelWing getLeft() { diff --git a/src/main/java/com/minelittlepony/model/gear/SaddleBags.java b/src/main/java/com/minelittlepony/model/gear/SaddleBags.java index 96f3f95a..7b68af9a 100644 --- a/src/main/java/com/minelittlepony/model/gear/SaddleBags.java +++ b/src/main/java/com/minelittlepony/model/gear/SaddleBags.java @@ -59,7 +59,7 @@ public class SaddleBags extends AbstractGear { x += 3; - rightBag.offset(-x, y, z).around(0, 4, 4) + rightBag.offset(-x, y, z).around(0, 4, 4).flip() .tex(56, 25).south(0, 0, 0, 3, 6, stretch) .tex(59, 25).south(0, 0, 8, 3, 6, stretch) .tex(56, 19).west(3, 0, 0, 6, 8, stretch) diff --git a/src/main/java/com/minelittlepony/model/player/ModelBatpony.java b/src/main/java/com/minelittlepony/model/player/ModelBatpony.java index 0421342a..aa13a9c7 100644 --- a/src/main/java/com/minelittlepony/model/player/ModelBatpony.java +++ b/src/main/java/com/minelittlepony/model/player/ModelBatpony.java @@ -20,12 +20,12 @@ public class ModelBatpony extends ModelPegasus { head.child() .tex(12, 16).box(-4, -6, 1, 2, 2, 2, stretch) // right ear .tex(0, 3).box(-3.5F, -6.49F, 1.001F, 1, 1, 1, stretch) - .tex(0, 5).box(-3, -6.49F, 2.001F, 1, 1, 1, stretch); + .tex(0, 5).box(-2.998F, -6.49F, 2.001F, 1, 1, 1, stretch); head.child().flip() .tex(12, 16).box( 2, -6, 1, 2, 2, 2, stretch) // left ear .tex(0, 3).box( 2.5F, -6.49F, 1.001F, 1, 1, 1, stretch) - .tex(0, 5).box( 2, -6.49F, 2.001F, 1, 1, 1, stretch); + .tex(0, 5).box( 1.998F, -6.49F, 2.001F, 1, 1, 1, stretch); } @Override diff --git a/src/main/java/com/minelittlepony/model/player/ModelChangeling.java b/src/main/java/com/minelittlepony/model/player/ModelChangeling.java index 8bda7668..8b722e07 100644 --- a/src/main/java/com/minelittlepony/model/player/ModelChangeling.java +++ b/src/main/java/com/minelittlepony/model/player/ModelChangeling.java @@ -1,5 +1,6 @@ package com.minelittlepony.model.player; +import com.minelittlepony.pony.data.PonyWearable; import net.minecraft.util.math.MathHelper; import com.minelittlepony.model.components.BugWings; @@ -15,11 +16,25 @@ public class ModelChangeling extends ModelAlicorn { wings = new BugWings<>(this, yOffset, stretch); } + @Override + public boolean wingsAreOpen() { + return (isFlying() || isCrouching()) && !isElytraFlying(); + } + @Override public float getWingRotationFactor(float ticks) { if (isFlying()) { - return MathHelper.sin(ticks * 3) + ROTATE_270 + 0.4f; + return MathHelper.sin(ticks * 3) + ROTATE_270; } return WING_ROT_Z_SNEAK; } + + @Override + public boolean isWearing(PonyWearable wearable) { + if (wearable == PonyWearable.SADDLE_BAGS) { + return false; + } + + return super.isWearing(wearable); + } }