Merge pull request #103 from PolyacovYury/models_changes

Models changes: batponies, changelings, saddlebags
This commit is contained in:
­Sollace 2018-11-06 19:06:34 +02:00 committed by GitHub
commit 7e828d452a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 42 additions and 30 deletions

View file

@ -13,10 +13,8 @@ public class BatWings<T extends AbstractPonyModel & IModelPegasus> extends Pegas
@Override @Override
public void init(float yOffset, float stretch) { public void init(float yOffset, float stretch) {
int x = 57; leftWing = new ModelBatWing<>(pegasus, false, false, yOffset, stretch, 16);
rightWing = new ModelBatWing<>(pegasus, true, false, yOffset, stretch, 16);
leftWing = new ModelBatWing<T>(pegasus, false, false, yOffset, stretch, x, 16);
rightWing = new ModelBatWing<T>(pegasus, true, false, yOffset, stretch, x - 1, 16);
} }
@Override @Override

View file

@ -11,10 +11,8 @@ public class BugWings<T extends AbstractPonyModel & IModelPegasus> extends Pegas
@Override @Override
public void init(float yOffset, float stretch) { public void init(float yOffset, float stretch) {
int x = 57; leftWing = new ModelBugWing<>(pegasus, false, false, yOffset, stretch, 16);
rightWing = new ModelBugWing<>(pegasus, true, false, yOffset, stretch, 16);
leftWing = new ModelBugWing<T>(pegasus, false, false, yOffset, stretch, x, 16);
rightWing = new ModelBugWing<T>(pegasus, true, false, yOffset, stretch, x - 1, 16);
} }
@Override @Override

View file

@ -6,8 +6,8 @@ import com.minelittlepony.render.model.PlaneRenderer;
public class ModelBatWing<T extends AbstractPonyModel & IModelPegasus> extends ModelWing<T> { public class ModelBatWing<T extends AbstractPonyModel & IModelPegasus> extends ModelWing<T> {
public ModelBatWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texX, int texY) { public ModelBatWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texY) {
super(pegasus, right, legacy, y, scale, texX, texY); super(pegasus, right, legacy, y, scale, texY);
} }
@Override @Override
@ -27,22 +27,25 @@ public class ModelBatWing<T extends AbstractPonyModel & IModelPegasus> extends M
protected void addFeathers(boolean right, boolean l, float rotationPointY, float scale) { protected void addFeathers(boolean right, boolean l, float rotationPointY, float scale) {
float r = right ? -1 : 1; 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) .mirror(right)
.rotateAngleY = r * 3; .rotateAngleY = r * 3;
extended.child().tex(60, 16) extended.child().tex(60, 16)
.mirror(right) // children are unaware of their parents being mirrored, sadly
.rotate(0.1F, 0, 0) .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) .child().tex(60, 16)
.mirror(right)
.rotate(-0.5F, 0, 0) .rotate(-0.5F, 0, 0)
.around(0, -1, -2) .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) extended.child(0)
.child().tex(60, 16) .child().tex(60, 16)
.mirror(right)
.rotate(-0.5F, 0, 0) .rotate(-0.5F, 0, 0)
.around(0, 4, -2.4F) .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) PlaneRenderer skin = new PlaneRenderer(pegasus)
.tex(56, 32) .tex(56, 32)

View file

@ -6,8 +6,8 @@ import com.minelittlepony.render.model.PlaneRenderer;
public class ModelBugWing<T extends AbstractPonyModel & IModelPegasus> extends ModelWing<T> { public class ModelBugWing<T extends AbstractPonyModel & IModelPegasus> extends ModelWing<T> {
public ModelBugWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texX, int texY) { public ModelBugWing(T pegasus, boolean right, boolean legacy, float y, float scale, int texY) {
super(pegasus, right, legacy, y, scale, texX, texY); super(pegasus, right, legacy, y, scale, texY);
} }
@Override @Override
@ -24,14 +24,14 @@ public class ModelBugWing<T extends AbstractPonyModel & IModelPegasus> extends M
.rotateAngleY = r * 3; .rotateAngleY = r * 3;
PlaneRenderer primary = new PlaneRenderer(pegasus) PlaneRenderer primary = new PlaneRenderer(pegasus)
.tex(56, 17) .tex(56, 16)
.mirror(right) .mirror(right)
.west(0, 0, -7, 15, 8, scale); .west(r * -0.5F, 0, -7, 16, 8, scale);
PlaneRenderer secondary = new PlaneRenderer(pegasus) PlaneRenderer secondary = new PlaneRenderer(pegasus)
.tex(56, 32) .tex(56, 32)
.rotate(-0.5F, r * 0.3F, r / 3) .rotate(-0.5F, r * 0.3F, r / 3)
.mirror(right) .mirror(right)
.west(0, 0, -7, 15, 8, scale); .west(r, 0, -5, 16, 8, scale);
extended.child(primary); extended.child(primary);
extended.child(secondary); extended.child(secondary);

View file

@ -15,11 +15,11 @@ public class ModelWing<T extends AbstractPonyModel & IModelPegasus> implements P
protected final PonyRenderer extended; protected final PonyRenderer extended;
protected final PonyRenderer folded; 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; this.pegasus = pegasus;
folded = new PonyRenderer(pegasus, 56, texY).mirror(legacy); 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); addClosedWing(right, y, scale);
addFeathers(right, legacy, y, scale); addFeathers(right, legacy, y, scale);

View file

@ -26,12 +26,10 @@ public class PegasusWings<T extends AbstractPonyModel & IModelPegasus> implement
@Override @Override
public void init(float yOffset, float stretch) { 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); legacyWing = new ModelWing<>(pegasus, true, true, yOffset, stretch, 32);
rightWing = new ModelWing<>(pegasus, true, false, yOffset, stretch, x - 1, 16);
legacyWing = new ModelWing<>(pegasus, true, true, yOffset, stretch, x, 32);
} }
public ModelWing<T> getLeft() { public ModelWing<T> getLeft() {

View file

@ -59,7 +59,7 @@ public class SaddleBags extends AbstractGear {
x += 3; 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(56, 25).south(0, 0, 0, 3, 6, stretch)
.tex(59, 25).south(0, 0, 8, 3, 6, stretch) .tex(59, 25).south(0, 0, 8, 3, 6, stretch)
.tex(56, 19).west(3, 0, 0, 6, 8, stretch) .tex(56, 19).west(3, 0, 0, 6, 8, stretch)

View file

@ -20,12 +20,12 @@ public class ModelBatpony extends ModelPegasus {
head.child() head.child()
.tex(12, 16).box(-4, -6, 1, 2, 2, 2, stretch) // right ear .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, 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() head.child().flip()
.tex(12, 16).box( 2, -6, 1, 2, 2, 2, stretch) // left ear .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, 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 @Override

View file

@ -1,5 +1,6 @@
package com.minelittlepony.model.player; package com.minelittlepony.model.player;
import com.minelittlepony.pony.data.PonyWearable;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
import com.minelittlepony.model.components.BugWings; import com.minelittlepony.model.components.BugWings;
@ -15,11 +16,25 @@ public class ModelChangeling extends ModelAlicorn {
wings = new BugWings<>(this, yOffset, stretch); wings = new BugWings<>(this, yOffset, stretch);
} }
@Override
public boolean wingsAreOpen() {
return (isFlying() || isCrouching()) && !isElytraFlying();
}
@Override @Override
public float getWingRotationFactor(float ticks) { public float getWingRotationFactor(float ticks) {
if (isFlying()) { if (isFlying()) {
return MathHelper.sin(ticks * 3) + ROTATE_270 + 0.4f; return MathHelper.sin(ticks * 3) + ROTATE_270;
} }
return WING_ROT_Z_SNEAK; return WING_ROT_Z_SNEAK;
} }
@Override
public boolean isWearing(PonyWearable wearable) {
if (wearable == PonyWearable.SADDLE_BAGS) {
return false;
}
return super.isWearing(wearable);
}
} }