From 341383bd4267161683f21071825544b7008f2d1c Mon Sep 17 00:00:00 2001 From: PolyacovYury Date: Mon, 5 Nov 2018 22:57:52 +0300 Subject: [PATCH 1/7] Removed redundand texture shift for left and legacy wings (and cleaned code that made it possible) --- .../com/minelittlepony/model/components/BatWings.java | 6 ++---- .../com/minelittlepony/model/components/BugWings.java | 6 ++---- .../com/minelittlepony/model/components/ModelBatWing.java | 4 ++-- .../com/minelittlepony/model/components/ModelBugWing.java | 4 ++-- .../com/minelittlepony/model/components/ModelWing.java | 4 ++-- .../com/minelittlepony/model/components/PegasusWings.java | 8 +++----- 6 files changed, 13 insertions(+), 19 deletions(-) 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..cf0cf76d 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 diff --git a/src/main/java/com/minelittlepony/model/components/ModelBugWing.java b/src/main/java/com/minelittlepony/model/components/ModelBugWing.java index 3aad94c0..bdcd6745 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 diff --git a/src/main/java/com/minelittlepony/model/components/ModelWing.java b/src/main/java/com/minelittlepony/model/components/ModelWing.java index c98ac623..6d3aa8d1 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, 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() { From 837315d008f37393098c41150e68702458424817 Mon Sep 17 00:00:00 2001 From: PolyacovYury Date: Mon, 5 Nov 2018 23:07:32 +0300 Subject: [PATCH 2/7] Adjusted changeling wing position and animation. - Don't open wings if swimming (looks odd) - Don't wear saddlebags (same reason) --- .../model/components/ModelBugWing.java | 6 +++--- .../model/player/ModelChangeling.java | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/minelittlepony/model/components/ModelBugWing.java b/src/main/java/com/minelittlepony/model/components/ModelBugWing.java index bdcd6745..0dc71cc1 100644 --- a/src/main/java/com/minelittlepony/model/components/ModelBugWing.java +++ b/src/main/java/com/minelittlepony/model/components/ModelBugWing.java @@ -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/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); + } } From 8d1804aaf7e3674d9174ac58da3bf911ff7e2b5d Mon Sep 17 00:00:00 2001 From: PolyacovYury Date: Mon, 5 Nov 2018 23:08:50 +0300 Subject: [PATCH 3/7] Fixed saddlebags not mirroring front and back faces (that single flip() call looks dangerous, but it didn't break anything) --- src/main/java/com/minelittlepony/model/gear/SaddleBags.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/minelittlepony/model/gear/SaddleBags.java b/src/main/java/com/minelittlepony/model/gear/SaddleBags.java index 96f3f95a..0ad18ca5 100644 --- a/src/main/java/com/minelittlepony/model/gear/SaddleBags.java +++ b/src/main/java/com/minelittlepony/model/gear/SaddleBags.java @@ -60,7 +60,7 @@ public class SaddleBags extends AbstractGear { x += 3; rightBag.offset(-x, y, z).around(0, 4, 4) - .tex(56, 25).south(0, 0, 0, 3, 6, stretch) + .tex(56, 25).flip().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) .west(0, 0, 0, 6, 8, stretch) From d98d2c26bbc47314ea7b5b68bd60953cca2e8c9c Mon Sep 17 00:00:00 2001 From: PolyacovYury Date: Tue, 6 Nov 2018 02:08:04 +0300 Subject: [PATCH 4/7] Batpony wings: mirroring fix, proper z-fighting fix, position adjustment --- .../minelittlepony/model/components/ModelBatWing.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/minelittlepony/model/components/ModelBatWing.java b/src/main/java/com/minelittlepony/model/components/ModelBatWing.java index cf0cf76d..272ca830 100644 --- a/src/main/java/com/minelittlepony/model/components/ModelBatWing.java +++ b/src/main/java/com/minelittlepony/model/components/ModelBatWing.java @@ -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) From bf8f3ef02a858d13c7a3feb524befb0892b9d24a Mon Sep 17 00:00:00 2001 From: PolyacovYury Date: Tue, 6 Nov 2018 02:09:22 +0300 Subject: [PATCH 5/7] Batpony ear tufts: z-fighting on inner sides of ears fixed --- .../java/com/minelittlepony/model/player/ModelBatpony.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 3777f4f7c94baf84ac2140d6abde215bb0b28b14 Mon Sep 17 00:00:00 2001 From: PolyacovYury Date: Tue, 6 Nov 2018 17:11:02 +0300 Subject: [PATCH 6/7] As far as I understand, .tex() and .flip() can change places --- src/main/java/com/minelittlepony/model/gear/SaddleBags.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/minelittlepony/model/gear/SaddleBags.java b/src/main/java/com/minelittlepony/model/gear/SaddleBags.java index 0ad18ca5..7b68af9a 100644 --- a/src/main/java/com/minelittlepony/model/gear/SaddleBags.java +++ b/src/main/java/com/minelittlepony/model/gear/SaddleBags.java @@ -59,8 +59,8 @@ public class SaddleBags extends AbstractGear { x += 3; - rightBag.offset(-x, y, z).around(0, 4, 4) - .tex(56, 25).flip().south(0, 0, 0, 3, 6, stretch) + 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) .west(0, 0, 0, 6, 8, stretch) From de5c2f92d380672d9db55d19bdd2159000f477f8 Mon Sep 17 00:00:00 2001 From: PolyacovYury Date: Tue, 6 Nov 2018 18:01:25 +0300 Subject: [PATCH 7/7] Restored old behaviour of pegasus left/legacy wing texture --- .../java/com/minelittlepony/model/components/ModelWing.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/minelittlepony/model/components/ModelWing.java b/src/main/java/com/minelittlepony/model/components/ModelWing.java index 6d3aa8d1..d8a9b1f3 100644 --- a/src/main/java/com/minelittlepony/model/components/ModelWing.java +++ b/src/main/java/com/minelittlepony/model/components/ModelWing.java @@ -19,7 +19,7 @@ public class ModelWing implements P this.pegasus = pegasus; folded = new PonyRenderer(pegasus, 56, texY).mirror(legacy); - extended = new PonyRenderer(pegasus, 56, texY + 3); + extended = new PonyRenderer(pegasus, 56 + ((!right || legacy) ? 1 : 0), texY + 3); addClosedWing(right, y, scale); addFeathers(right, legacy, y, scale);