diff --git a/gradle.properties b/gradle.properties
index 35a1aa92..3e3a7703 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -23,4 +23,4 @@ org.gradle.daemon=false
modmenu_version=6.1.0-rc.4
kirin_version=1.14.0-beta.3
hd_skins_version=6.8.0-beta.1
- mson_version=1.8.0-beta.2
+ mson_version=1.8.0-beta.4
diff --git a/src/main/java/com/minelittlepony/api/model/IPart.java b/src/main/java/com/minelittlepony/api/model/IPart.java
index 9b6a48af..b688b4f6 100644
--- a/src/main/java/com/minelittlepony/api/model/IPart.java
+++ b/src/main/java/com/minelittlepony/api/model/IPart.java
@@ -3,15 +3,13 @@ package com.minelittlepony.api.model;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.util.math.MatrixStack;
-import java.util.UUID;
-
public interface IPart extends PonyModelConstants {
/**
* Sets the model's various rotation angles.
*
* See {@link AbstractPonyMode.setRotationAndAngle} for an explanation of the various parameters.
*/
- default void setRotationAndAngles(boolean rainboom, UUID interpolatorId, float move, float swing, float bodySwing, float ticks) {
+ default void setRotationAndAngles(ModelAttributes attributes, float move, float swing, float bodySwing, float ticks) {
}
diff --git a/src/main/java/com/minelittlepony/api/model/IPegasus.java b/src/main/java/com/minelittlepony/api/model/IPegasus.java
index 453044c2..2bea883b 100644
--- a/src/main/java/com/minelittlepony/api/model/IPegasus.java
+++ b/src/main/java/com/minelittlepony/api/model/IPegasus.java
@@ -13,7 +13,6 @@ public interface IPegasus extends IModel {
&& (MineLittlePony.getInstance().getConfig().flappyElytras.get() || !getAttributes().isGliding);
}
-
default boolean isBurdened() {
return isWearing(Wearable.SADDLE_BAGS_BOTH) || isWearing(Wearable.SADDLE_BAGS_LEFT) || isWearing(Wearable.SADDLE_BAGS_RIGHT);
}
diff --git a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java
index 4583f041..eed86b4d 100644
--- a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java
+++ b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java
@@ -1,8 +1,8 @@
package com.minelittlepony.api.model;
-import com.minelittlepony.api.pony.IPony;
-import com.minelittlepony.api.pony.PonyPosture;
+import com.minelittlepony.api.pony.*;
import com.minelittlepony.client.SkinsProxy;
+import com.minelittlepony.client.pony.PonyData;
import com.minelittlepony.util.MathUtil;
import java.util.*;
@@ -102,6 +102,11 @@ public class ModelAttributes {
*/
public Set featureSkins = new HashSet<>();
+ /**
+ * Contains the skin metadata associated with this model.
+ */
+ public IPonyData metadata = PonyData.NULL;
+
/**
* Checks flying and speed conditions and sets rainboom to true if we're a species with wings and is going faaast.
*/
diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java
index fc5dc64b..e01177ed 100644
--- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java
+++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java
@@ -7,6 +7,8 @@ import com.minelittlepony.client.transform.PonyTransformation;
import com.minelittlepony.client.util.render.RenderList;
import com.minelittlepony.mson.util.PartUtil;
+import java.util.ArrayList;
+import java.util.List;
import java.util.function.Supplier;
import net.minecraft.client.model.ModelPart;
@@ -38,6 +40,8 @@ public abstract class AbstractPonyModel extends ClientPo
protected final RenderList mainRenderList;
+ private final List parts = new ArrayList<>();
+
public AbstractPonyModel(ModelPart tree) {
super(tree);
@@ -54,6 +58,11 @@ public abstract class AbstractPonyModel extends ClientPo
.add(withStage(BodyPart.HEAD, helmetRenderList = RenderList.of(hat)));
}
+ protected P addPart(P part) {
+ parts.add(part);
+ return part;
+ }
+
protected RenderList forPart(Supplier part) {
return (stack, vertices, overlayUv, lightUv, red, green, blue, alpha) -> {
part.get().renderPart(stack, vertices, overlayUv, lightUv, red, green, blue, alpha, attributes);
@@ -118,7 +127,8 @@ public abstract class AbstractPonyModel extends ClientPo
protected void setModelAngles(T entity, float move, float swing, float ticks, float headYaw, float headPitch) {
rotateHead(headYaw, headPitch);
- shakeBody(move, swing, getWobbleAmount(), ticks);
+ float bodySwing = getWobbleAmount();
+ shakeBody(move, swing, bodySwing, ticks);
rotateLegs(move, swing, ticks, entity);
if (onSetModelAngles != null) {
@@ -152,6 +162,8 @@ public abstract class AbstractPonyModel extends ClientPo
if (attributes.isSleeping) {
ponySleep();
}
+
+ parts.forEach(part -> part.setRotationAndAngles(attributes, move, swing, bodySwing, ticks));
}
public void setHeadRotation(float animationProgress, float yaw, float pitch) {
@@ -590,6 +602,8 @@ public abstract class AbstractPonyModel extends ClientPo
upperTorsoOverlay.visible = visible;
neck.visible = visible;
+
+ parts.forEach(part -> part.setVisible(visible));
}
@Override
diff --git a/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java b/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java
index f90c3f6b..1917dea4 100644
--- a/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java
+++ b/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java
@@ -14,7 +14,6 @@ import com.minelittlepony.api.pony.IPony;
import com.minelittlepony.api.pony.IPonyData;
import com.minelittlepony.api.pony.meta.Size;
import com.minelittlepony.api.pony.meta.Sizes;
-import com.minelittlepony.client.pony.PonyData;
import com.minelittlepony.mson.api.model.biped.MsonPlayer;
/**
@@ -31,11 +30,6 @@ public abstract class ClientPonyModel extends MsonPlayer
*/
protected ModelAttributes attributes = new ModelAttributes();
- /**
- * Associated pony data.
- */
- protected IPonyData metadata = PonyData.NULL;
-
@Nullable
protected PosingCallback onSetModelAngles;
@@ -73,7 +67,7 @@ public abstract class ClientPonyModel extends MsonPlayer
@Override
public IPonyData getMetadata() {
- return metadata;
+ return attributes.metadata;
}
@Override
@@ -83,7 +77,7 @@ public abstract class ClientPonyModel extends MsonPlayer
@Override
public void setMetadata(IPonyData meta) {
- metadata = meta;
+ attributes.metadata = meta;
}
@Override
@@ -120,7 +114,6 @@ public abstract class ClientPonyModel extends MsonPlayer
if (model instanceof ClientPonyModel) {
((ClientPonyModel)model).attributes = attributes;
- ((ClientPonyModel)model).metadata = metadata;
}
}
diff --git a/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java b/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java
index cd221023..2ccf8fd1 100644
--- a/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java
+++ b/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java
@@ -13,7 +13,7 @@ import com.minelittlepony.api.model.ModelAttributes;
import com.minelittlepony.api.pony.IPony;
import com.minelittlepony.api.pony.IPonyData;
import com.minelittlepony.api.pony.meta.Size;
-import com.minelittlepony.mson.api.ModelContext;
+import com.minelittlepony.mson.api.ModelView;
import com.minelittlepony.mson.api.model.BoxBuilder.RenderLayerSetter;
public interface IPonyMixinModel> extends IPonyModel, ModelWithArms {
@@ -21,7 +21,7 @@ public interface IPonyMixinModel
M mixin();
@Override
- default void init(ModelContext context) {
+ default void init(ModelView context) {
mixin().init(context);
if (mixin() instanceof RenderLayerSetter && this instanceof RenderLayerSetter) {
((RenderLayerSetter)this).setRenderLayerFactory(((RenderLayerSetter)mixin()).getRenderLayerFactory());
diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/AlicornModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/AlicornModel.java
index a5a43296..56c822e8 100644
--- a/src/main/java/com/minelittlepony/client/model/entity/race/AlicornModel.java
+++ b/src/main/java/com/minelittlepony/client/model/entity/race/AlicornModel.java
@@ -2,23 +2,24 @@ package com.minelittlepony.client.model.entity.race;
import com.minelittlepony.api.model.IPart;
import com.minelittlepony.api.model.IPegasus;
-import com.minelittlepony.mson.api.ModelContext;
+import com.minelittlepony.client.model.part.PonyWings;
+import com.minelittlepony.mson.api.ModelView;
import net.minecraft.client.model.ModelPart;
import net.minecraft.entity.LivingEntity;
public class AlicornModel extends UnicornModel implements IPegasus {
- private IPart wings;
+ private PonyWings> wings;
public AlicornModel(ModelPart tree, boolean smallArms) {
super(tree, smallArms);
}
@Override
- public void init(ModelContext context) {
+ public void init(ModelView context) {
super.init(context);
- wings = context.findByName("wings");
+ wings = addPart(context.findByName("wings", PonyWings::new));
bodyRenderList.add(forPart(this::getWings).checked(this::canFly));
}
@@ -26,19 +27,4 @@ public class AlicornModel extends UnicornModel implem
public IPart getWings() {
return wings;
}
-
- @Override
- public void setModelAngles(T entity, float move, float swing, float ticks, float headYaw, float headPitch) {
- super.setModelAngles(entity, move, swing, ticks, headYaw, headPitch);
-
- if (canFly()) {
- getWings().setRotationAndAngles(attributes.isGoingFast, attributes.interpolatorId, move, swing, 0, ticks);
- }
- }
-
- @Override
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- getWings().setVisible(visible);
- }
}
diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/EarthPonyModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/EarthPonyModel.java
index 5f48ebdd..09eec5e8 100644
--- a/src/main/java/com/minelittlepony/client/model/entity/race/EarthPonyModel.java
+++ b/src/main/java/com/minelittlepony/client/model/entity/race/EarthPonyModel.java
@@ -2,8 +2,8 @@ package com.minelittlepony.client.model.entity.race;
import com.minelittlepony.api.model.IPart;
import com.minelittlepony.client.model.AbstractPonyModel;
-import com.minelittlepony.client.model.part.PonySnout;
-import com.minelittlepony.mson.api.ModelContext;
+import com.minelittlepony.client.model.part.*;
+import com.minelittlepony.mson.api.ModelView;
import net.minecraft.client.model.ModelPart;
import net.minecraft.entity.LivingEntity;
@@ -14,7 +14,7 @@ public class EarthPonyModel extends AbstractPonyModel
protected IPart tail;
protected PonySnout snout;
- protected IPart ears;
+ protected PonyEars ears;
public EarthPonyModel(ModelPart tree, boolean smallArms) {
super(tree);
@@ -22,42 +22,26 @@ public class EarthPonyModel extends AbstractPonyModel
}
@Override
- public void init(ModelContext context) {
+ public void init(ModelView context) {
super.init(context);
- tail = context.findByName("tail");
- snout = context.findByName("snout");
- ears = context.findByName("ears");
+ tail = addPart(context.findByName("tail", this::createTail, IPart.class));
+ addPart(context.findByName("snout", PonySnout::new));
+ addPart(context.findByName("ears", PonyEars::new));
bodyRenderList.add(forPart(tail));
}
+ protected IPart createTail(ModelPart tree) {
+ return new PonyTail(tree);
+ }
+
@Override
public void setModelAngles(T entity, float move, float swing, float ticks, float headYaw, float headPitch) {
super.setModelAngles(entity, move, swing, ticks, headYaw, headPitch);
- snout.setGender(getMetadata().getGender());
cape.pivotY = sneaking ? 2 : riding ? -4 : 0;
}
- @Override
- public void setHeadRotation(float animationProgress, float yaw, float pitch) {
- super.setHeadRotation(animationProgress, yaw, pitch);
- snout.setGender(getMetadata().getGender());
- }
-
- @Override
- protected void shakeBody(float move, float swing, float bodySwing, float ticks) {
- super.shakeBody(move, swing, bodySwing, ticks);
- tail.setRotationAndAngles(attributes.isSwimming || attributes.isGoingFast, attributes.interpolatorId, move, swing, bodySwing * 5, ticks);
- }
-
- @Override
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- snout.setVisible(visible);
- tail.setVisible(visible);
- }
-
@Override
protected float getLegOutset() {
if (smallArms) {
diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/PegasusModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/PegasusModel.java
index 913cbb78..c3f8b9e5 100644
--- a/src/main/java/com/minelittlepony/client/model/entity/race/PegasusModel.java
+++ b/src/main/java/com/minelittlepony/client/model/entity/race/PegasusModel.java
@@ -2,23 +2,24 @@ package com.minelittlepony.client.model.entity.race;
import com.minelittlepony.api.model.IPart;
import com.minelittlepony.api.model.IPegasus;
-import com.minelittlepony.mson.api.ModelContext;
+import com.minelittlepony.client.model.part.PonyWings;
+import com.minelittlepony.mson.api.ModelView;
import net.minecraft.client.model.ModelPart;
import net.minecraft.entity.LivingEntity;
public class PegasusModel extends EarthPonyModel implements IPegasus {
- private IPart wings;
+ private PonyWings> wings;
public PegasusModel(ModelPart tree, boolean smallArms) {
super(tree, smallArms);
}
@Override
- public void init(ModelContext context) {
+ public void init(ModelView context) {
super.init(context);
- wings = context.findByName("wings");
+ wings = addPart(context.findByName("wings", PonyWings::new));
bodyRenderList.add(forPart(this::getWings));
}
@@ -26,16 +27,4 @@ public class PegasusModel extends EarthPonyModel impl
public IPart getWings() {
return wings;
}
-
- @Override
- public void setModelAngles(T entity, float move, float swing, float ticks, float headYaw, float headPitch) {
- super.setModelAngles(entity, move, swing, ticks, headYaw, headPitch);
- getWings().setRotationAndAngles(attributes.isGoingFast, entity.getUuid(), move, swing, 0, ticks);
- }
-
- @Override
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- getWings().setVisible(visible);
- }
}
diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/SeaponyModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/SeaponyModel.java
index 58723fc0..04166361 100644
--- a/src/main/java/com/minelittlepony/client/model/entity/race/SeaponyModel.java
+++ b/src/main/java/com/minelittlepony/client/model/entity/race/SeaponyModel.java
@@ -1,9 +1,9 @@
package com.minelittlepony.client.model.entity.race;
import com.minelittlepony.client.model.armour.PonyArmourModel;
-import com.minelittlepony.mson.api.ModelContext;
-import com.minelittlepony.api.model.BodyPart;
-import com.minelittlepony.api.model.ModelAttributes;
+import com.minelittlepony.client.model.part.SeaponyTail;
+import com.minelittlepony.mson.api.ModelView;
+import com.minelittlepony.api.model.*;
import com.minelittlepony.api.model.armour.ArmourLayer;
import com.minelittlepony.api.model.armour.ArmourVariant;
import com.minelittlepony.api.pony.IPony;
@@ -34,7 +34,12 @@ public class SeaponyModel extends UnicornModel {
}
@Override
- public void init(ModelContext context) {
+ protected IPart createTail(ModelPart tree) {
+ return new SeaponyTail(tree);
+ }
+
+ @Override
+ public void init(ModelView context) {
super.init(context);
setVisible(true);
bodyRenderList.clear();
diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/UnicornModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/UnicornModel.java
index d5f00161..0bb0e709 100644
--- a/src/main/java/com/minelittlepony/client/model/entity/race/UnicornModel.java
+++ b/src/main/java/com/minelittlepony/client/model/entity/race/UnicornModel.java
@@ -5,7 +5,7 @@ import com.minelittlepony.api.model.IUnicorn;
import com.minelittlepony.client.MineLittlePony;
import com.minelittlepony.client.model.part.UnicornHorn;
import com.minelittlepony.client.util.render.RenderList;
-import com.minelittlepony.mson.api.ModelContext;
+import com.minelittlepony.mson.api.ModelView;
import net.minecraft.client.model.ModelPart;
import net.minecraft.entity.LivingEntity;
@@ -28,9 +28,9 @@ public class UnicornModel extends EarthPonyModel impl
}
@Override
- public void init(ModelContext context) {
+ public void init(ModelView context) {
super.init(context);
- horn = context.findByName("horn");
+ horn = addPart(context.findByName("horn", UnicornHorn::new));
headRenderList.add(RenderList.of().add(head::rotate).add(forPart(horn)).checked(this::hasHorn));
this.mainRenderList.add(withStage(BodyPart.HEAD, RenderList.of().add(head::rotate).add((stack, vertices, overlayUv, lightUv, red, green, blue, alpha) -> {
horn.renderMagic(stack, vertices, getMagicColor());
@@ -73,10 +73,4 @@ public class UnicornModel extends EarthPonyModel impl
}
return super.getArm(side);
}
-
- @Override
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- horn.setVisible(visible);
- }
}
diff --git a/src/main/java/com/minelittlepony/client/model/part/BatWings.java b/src/main/java/com/minelittlepony/client/model/part/BatWings.java
deleted file mode 100644
index 84b40fa5..00000000
--- a/src/main/java/com/minelittlepony/client/model/part/BatWings.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.minelittlepony.client.model.part;
-
-import net.minecraft.client.model.Model;
-import net.minecraft.client.model.ModelPart;
-import net.minecraft.client.render.VertexConsumer;
-import net.minecraft.client.util.math.MatrixStack;
-
-import com.minelittlepony.api.model.IPegasus;
-import com.minelittlepony.api.model.ModelAttributes;
-
-public class BatWings extends PegasusWings {
-
- public BatWings(ModelPart tree) {
- super(tree);
- }
-
- @Override
- public void renderPart(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha, ModelAttributes attributes) {
- stack.push();
- stack.scale(1.3F, 1.3F, 1.3F);
-
- super.renderPart(stack, vertices, overlayUv, lightUv, red, green, blue, alpha, attributes);
-
- stack.pop();
- }
-
- public static class Wing extends PegasusWings.Wing {
-
- public Wing(ModelPart tree) {
- super(tree);
- }
-
- @Override
- public void rotateWalking(float swing) {
- folded.yaw = swing * 0.05F;
- }
- }
-}
diff --git a/src/main/java/com/minelittlepony/client/model/part/LionTail.java b/src/main/java/com/minelittlepony/client/model/part/LionTail.java
index 0ecfaa24..334915e0 100644
--- a/src/main/java/com/minelittlepony/client/model/part/LionTail.java
+++ b/src/main/java/com/minelittlepony/client/model/part/LionTail.java
@@ -7,39 +7,30 @@ import net.minecraft.util.math.MathHelper;
import com.minelittlepony.api.model.IPart;
import com.minelittlepony.api.model.ModelAttributes;
-import com.minelittlepony.client.model.IPonyModel;
import com.minelittlepony.common.util.animation.Interpolator;
-import com.minelittlepony.mson.api.ModelContext;
-import com.minelittlepony.mson.api.MsonModel;
-import java.util.UUID;
-
-public class LionTail implements IPart, MsonModel {
+public class LionTail implements IPart {
private ModelPart tail;
- private IPonyModel> model;
public LionTail(ModelPart tree) {
tail = tree.getChild("tail");
}
@Override
- public void init(ModelContext context) {
- model = context.getModel();
- }
+ public void setRotationAndAngles(ModelAttributes attributes, float move, float swing, float bodySwing, float ticks) {
- @Override
- public void setRotationAndAngles(boolean rainboom, UUID interpolatorId, float move, float swing, float bodySwing, float ticks) {
+ bodySwing *= 5;
float baseSail = 1F;
float speed = swing > 0.01F ? 6 : 90;
- Interpolator interpolator = Interpolator.linear(interpolatorId);
+ Interpolator interpolator = Interpolator.linear(attributes.interpolatorId);
float straightness = 1.6F * (1 + (float)Math.sin(ticks / speed) / 8F);
float bend = (float)Math.sin(Math.PI/2F + 2 * ticks / speed) / 16F;
- if (model.getAttributes().isCrouching) {
+ if (attributes.isCrouching) {
baseSail += 1;
straightness += 0.5F;
}
diff --git a/src/main/java/com/minelittlepony/client/model/part/PonyEars.java b/src/main/java/com/minelittlepony/client/model/part/PonyEars.java
index a7646243..116179c5 100644
--- a/src/main/java/com/minelittlepony/client/model/part/PonyEars.java
+++ b/src/main/java/com/minelittlepony/client/model/part/PonyEars.java
@@ -6,23 +6,21 @@ import net.minecraft.client.util.math.MatrixStack;
import com.minelittlepony.api.model.IPart;
import com.minelittlepony.api.model.ModelAttributes;
-import com.minelittlepony.mson.api.ModelContext;
-import com.minelittlepony.mson.api.MsonModel;
+import com.minelittlepony.mson.api.*;
import com.minelittlepony.mson.api.model.PartBuilder;
public class PonyEars implements IPart, MsonModel {
- private ModelPart right;
- private ModelPart left;
+ private final ModelPart right;
+ private final ModelPart left;
public PonyEars(ModelPart tree) {
+ right = tree.getChild("right");
+ left = tree.getChild("left");
}
@Override
- public void init(ModelContext context) {
- right = context.findByName("right");
- left = context.findByName("left");
-
- PartBuilder head = context.getContext();
+ public void init(ModelView context) {
+ PartBuilder head = context.getThis();
head.addChild("right_ear_" + hashCode(), right);
head.addChild("left_ear_" + hashCode(), left);
}
diff --git a/src/main/java/com/minelittlepony/client/model/part/PonySnout.java b/src/main/java/com/minelittlepony/client/model/part/PonySnout.java
index 969c4302..d7e54b2c 100644
--- a/src/main/java/com/minelittlepony/client/model/part/PonySnout.java
+++ b/src/main/java/com/minelittlepony/client/model/part/PonySnout.java
@@ -8,8 +8,7 @@ import com.minelittlepony.api.model.IPart;
import com.minelittlepony.api.model.ModelAttributes;
import com.minelittlepony.api.pony.meta.Gender;
import com.minelittlepony.client.MineLittlePony;
-import com.minelittlepony.mson.api.ModelContext;
-import com.minelittlepony.mson.api.MsonModel;
+import com.minelittlepony.mson.api.*;
import com.minelittlepony.mson.api.model.PartBuilder;
public class PonySnout implements IPart, MsonModel {
@@ -25,8 +24,8 @@ public class PonySnout implements IPart, MsonModel {
}
@Override
- public void init(ModelContext context) {
- PartBuilder head = context.getContext();
+ public void init(ModelView context) {
+ PartBuilder head = context.getThis();
head.addChild("mare", mare);
head.addChild("stallion", stallion);
}
@@ -36,6 +35,11 @@ public class PonySnout implements IPart, MsonModel {
stallion.setAngles(x, y, z);
}
+ @Override
+ public void setRotationAndAngles(ModelAttributes attributes, float move, float swing, float bodySwing, float ticks) {
+ setGender(attributes.metadata.getGender());
+ }
+
@Override
public void renderPart(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha, ModelAttributes attributes) {
}
diff --git a/src/main/java/com/minelittlepony/client/model/part/PonyTail.java b/src/main/java/com/minelittlepony/client/model/part/PonyTail.java
index 5a89ed02..88b8f323 100644
--- a/src/main/java/com/minelittlepony/client/model/part/PonyTail.java
+++ b/src/main/java/com/minelittlepony/client/model/part/PonyTail.java
@@ -9,13 +9,10 @@ import com.minelittlepony.api.model.IPart;
import com.minelittlepony.api.model.ModelAttributes;
import com.minelittlepony.api.pony.meta.TailShape;
import com.minelittlepony.client.model.AbstractPonyModel;
-import com.minelittlepony.mson.api.ModelContext;
-import com.minelittlepony.mson.api.MsonModel;
+import com.minelittlepony.mson.api.*;
import java.util.ArrayList;
import java.util.List;
-import java.util.UUID;
-import java.util.concurrent.ExecutionException;
public class PonyTail implements IPart, MsonModel {
@@ -32,30 +29,24 @@ public class PonyTail implements IPart, MsonModel {
}
@Override
- public void init(ModelContext context) {
+ public void init(ModelView context) {
model = context.getModel();
- try {
- int segments = context.getLocals().getLocal("segments").get().intValue();
+ int segments = (int)context.getLocalValue("segments", 4);
- ModelContext subContext = context.resolve(this);
-
- for (int i = 0; i < segments; i++) {
- Segment segment = subContext.findByName("segment_" + i);
- segment.tail = this;
- segment.index = i;
- this.segments.add(segment);
- }
-
- } catch (InterruptedException | ExecutionException e) {
- throw new RuntimeException(e);
+ for (int i = 0; i < segments; i++) {
+ Segment segment = context.findByName("segment_" + i, Segment::new);
+ segment.tail = this;
+ segment.index = i;
+ this.segments.add(segment);
}
}
@Override
- public void setRotationAndAngles(boolean rainboom, UUID interpolatorId, float move, float swing, float bodySwing, float ticks) {
+ public void setRotationAndAngles(ModelAttributes attributes, float move, float swing, float bodySwing, float ticks) {
+ boolean rainboom = attributes.isSwimming || attributes.isGoingFast;
tail.roll = rainboom ? 0 : MathHelper.cos(move * 0.8F) * 0.2f * swing;
- tail.yaw = bodySwing;
+ tail.yaw = bodySwing * 5;
if (model.getAttributes().isCrouching && !rainboom) {
rotateSneak();
diff --git a/src/main/java/com/minelittlepony/client/model/part/PegasusWings.java b/src/main/java/com/minelittlepony/client/model/part/PonyWings.java
similarity index 69%
rename from src/main/java/com/minelittlepony/client/model/part/PegasusWings.java
rename to src/main/java/com/minelittlepony/client/model/part/PonyWings.java
index 669c5e81..6ca9e778 100644
--- a/src/main/java/com/minelittlepony/client/model/part/PegasusWings.java
+++ b/src/main/java/com/minelittlepony/client/model/part/PonyWings.java
@@ -8,12 +8,10 @@ import net.minecraft.util.math.MathHelper;
import com.minelittlepony.api.model.*;
import com.minelittlepony.api.pony.meta.Wearable;
-import com.minelittlepony.mson.api.ModelContext;
+import com.minelittlepony.mson.api.ModelView;
import com.minelittlepony.mson.api.MsonModel;
-import java.util.UUID;
-
-public class PegasusWings implements IPart, MsonModel {
+public class PonyWings implements IPart, MsonModel {
protected T pegasus;
@@ -22,16 +20,21 @@ public class PegasusWings implements IPart, MsonMode
protected Wing legacyWing;
- public PegasusWings(ModelPart tree) {
+ private float wingScale;
+ private float walkingRotationSpeed;
+
+ public PonyWings(ModelPart tree) {
}
@Override
- public void init(ModelContext context) {
+ public void init(ModelView context) {
pegasus = context.getModel();
- leftWing = context.findByName("left_wing");
- rightWing = context.findByName("right_wing");
- legacyWing = context.findByName("legacy_right_wing");
+ leftWing = context.findByName("left_wing", Wing::new);
+ rightWing = context.findByName("right_wing", Wing::new);
+ legacyWing = context.findByName("legacy_right_wing", Wing::new);
+ wingScale = context.getLocalValue("wing_scale", 1); // pegasi 1 / bats 1.3F
+ walkingRotationSpeed = context.getLocalValue("walking_rotation_speed", 0.15F); // pegasi 0.15 / bats 0.05F
}
public Wing getLeft() {
@@ -43,7 +46,7 @@ public class PegasusWings implements IPart, MsonMode
}
@Override
- public void setRotationAndAngles(boolean rainboom, UUID interpolatorId, float move, float swing, float bodySwing, float ticks) {
+ public void setRotationAndAngles(ModelAttributes attributes, float move, float swing, float bodySwing, float ticks) {
float flap = 0;
float progress = pegasus.getSwingAmount();
@@ -65,7 +68,7 @@ public class PegasusWings implements IPart, MsonMode
if (pegasus.wingsAreOpen()) {
flapAngle = pegasus.getWingRotationFactor(ticks);
- if (!pegasus.getAttributes().isCrouching && pegasus.isBurdened()) {
+ if (!attributes.isCrouching && pegasus.isBurdened()) {
flapAngle -= 1F;
}
} else {
@@ -73,7 +76,7 @@ public class PegasusWings implements IPart, MsonMode
}
if (!pegasus.isFlying()) {
- flapAngle = pegasus.getMetadata().getInterpolator(interpolatorId).interpolate("wingFlap", flapAngle, 10);
+ flapAngle = pegasus.getMetadata().getInterpolator(attributes.interpolatorId).interpolate("wingFlap", flapAngle, 10);
}
getLeft().rotateFlying(flapAngle);
@@ -87,26 +90,25 @@ public class PegasusWings implements IPart, MsonMode
getRight().render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha);
}
- public static class Wing implements MsonModel {
+ public class Wing implements MsonModel {
protected IPegasus pegasus;
- protected ModelPart extended;
- protected ModelPart folded;
+ protected final ModelPart extended;
+ protected final ModelPart folded;
public Wing(ModelPart tree) {
-
+ extended = tree.getChild("extended");
+ folded = tree.getChild("folded");
}
@Override
- public void init(ModelContext context) {
+ public void init(ModelView context) {
pegasus = context.getModel();
- extended = context.findByName("extended");
- folded = context.findByName("folded");
}
public void rotateWalking(float swing) {
- folded.yaw = swing * 0.15F;
+ folded.yaw = swing * walkingRotationSpeed;
}
public void rotateFlying(float angle) {
@@ -114,6 +116,9 @@ public class PegasusWings implements IPart, MsonMode
}
public void render(MatrixStack stack, VertexConsumer vertices, int overlayUv, int lightUv, float red, float green, float blue, float alpha) {
+ stack.push();
+ stack.scale(wingScale, wingScale, wingScale);
+
if (pegasus.wingsAreOpen()) {
extended.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha);
} else {
@@ -127,6 +132,8 @@ public class PegasusWings implements IPart, MsonMode
stack.pop();
}
}
+
+ stack.pop();
}
}
}
diff --git a/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java b/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java
index f589ab00..7c13b989 100644
--- a/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java
+++ b/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java
@@ -2,43 +2,30 @@ package com.minelittlepony.client.model.part;
import com.minelittlepony.api.model.IPart;
import com.minelittlepony.api.model.ModelAttributes;
-import com.minelittlepony.client.model.IPonyModel;
-import com.minelittlepony.mson.api.ModelContext;
-import com.minelittlepony.mson.api.MsonModel;
-
-import java.util.UUID;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.MathHelper;
-public class SeaponyTail implements IPart, MsonModel {
+public class SeaponyTail implements IPart {
private static final float TAIL_ROTX = PI / 2;
- private ModelPart tailBase;
+ private final ModelPart tailBase;
- private ModelPart tailTip;
- private ModelPart tailFins;
-
- private IPonyModel> model;
+ private final ModelPart tailTip;
+ private final ModelPart tailFins;
public SeaponyTail(ModelPart tree) {
-
+ tailBase = tree.getChild("base");
+ tailTip = tree.getChild("tip");
+ tailFins = tree.getChild("fins");
}
@Override
- public void init(ModelContext context) {
- model = context.getModel();
- tailBase = context.findByName("base");
- tailTip = context.findByName("tip");
- tailFins = context.findByName("fins");
- }
-
- @Override
- public void setRotationAndAngles(boolean rainboom, UUID interpolatorId, float move, float swing, float bodySwing, float ticks) {
- float rotation = model.getAttributes().isSleeping ? 0 : MathHelper.sin(ticks * 0.536f) / 4;
+ public void setRotationAndAngles(ModelAttributes attributes, float move, float swing, float bodySwing, float ticks) {
+ float rotation = attributes.isSleeping ? 0 : MathHelper.sin(ticks * 0.536f) / 4;
tailBase.pitch = TAIL_ROTX + rotation;
tailTip.pitch = rotation;
diff --git a/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java b/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java
index 82df07a6..048bfd68 100644
--- a/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java
+++ b/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java
@@ -11,24 +11,17 @@ import com.minelittlepony.api.model.IPart;
import com.minelittlepony.api.model.ModelAttributes;
import com.minelittlepony.client.render.MagicGlow;
import com.minelittlepony.common.util.Color;
-import com.minelittlepony.mson.api.ModelContext;
-import com.minelittlepony.mson.api.MsonModel;
-public class UnicornHorn implements IPart, MsonModel {
+public class UnicornHorn implements IPart {
- private ModelPart horn;
- private ModelPart glow;
+ private final ModelPart horn;
+ private final ModelPart glow;
protected boolean visible = true;
public UnicornHorn(ModelPart tree) {
-
- }
-
- @Override
- public void init(ModelContext context) {
- horn = context.findByName("bone");
- glow = context.findByName("corona");
+ horn = tree.getChild("bone");
+ glow = tree.getChild("corona");
}
@Override
diff --git a/src/main/resources/assets/minelittlepony/models/components/bat_wings.json b/src/main/resources/assets/minelittlepony/models/components/bat_wings.json
index 83a429ec..eeb1085c 100644
--- a/src/main/resources/assets/minelittlepony/models/components/bat_wings.json
+++ b/src/main/resources/assets/minelittlepony/models/components/bat_wings.json
@@ -1,9 +1,12 @@
{
+ "locals": {
+ "wing_scale": 1.3,
+ "walking_rotation_speed": "0.05"
+ },
"data": {
"left_wing": {
"type": "mson:slot",
"name": "left_wing",
- "implementation": "com.minelittlepony.client.model.part.BatWings$Wing",
"data": {
"folded": {
"texture": {"u": 56, "v": 16, "w": 64, "h": 64},
@@ -57,7 +60,6 @@
"right_wing": {
"type": "mson:slot",
"name": "right_wing",
- "implementation": "com.minelittlepony.client.model.part.BatWings$Wing",
"data": {
"folded": {
"texture": {"u": 56, "v": 16, "w": 64, "h": 64},
diff --git a/src/main/resources/assets/minelittlepony/models/components/bug_wings.json b/src/main/resources/assets/minelittlepony/models/components/bug_wings.json
index c4e086d9..abb942ee 100644
--- a/src/main/resources/assets/minelittlepony/models/components/bug_wings.json
+++ b/src/main/resources/assets/minelittlepony/models/components/bug_wings.json
@@ -3,7 +3,6 @@
"left_wing": {
"type": "mson:slot",
"name": "left_wing",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings$Wing",
"data": {
"folded": "#extended",
"extended": {
@@ -27,7 +26,6 @@
"right_wing": {
"type": "mson:slot",
"name": "right_wing",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings$Wing",
"data": {
"folded": "#extended",
"extended": {
diff --git a/src/main/resources/assets/minelittlepony/models/components/pegasus_wings.json b/src/main/resources/assets/minelittlepony/models/components/pegasus_wings.json
index cf01bbb9..cf45c8f0 100644
--- a/src/main/resources/assets/minelittlepony/models/components/pegasus_wings.json
+++ b/src/main/resources/assets/minelittlepony/models/components/pegasus_wings.json
@@ -3,7 +3,6 @@
"left_wing": {
"type": "mson:slot",
"name": "left_wing",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings$Wing",
"data": {
"folded": {
"texture": {"u": 56, "v": 32, "w": 64, "h": 64},
@@ -33,7 +32,6 @@
"right_wing": {
"type": "mson:slot",
"name": "right_wing",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings$Wing",
"data": {
"folded": {
"texture": {"u": 56, "v": 16, "w": 64, "h": 64},
@@ -63,7 +61,6 @@
"legacy_right_wing": {
"type": "mson:slot",
"name": "legacy_right_wing",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings$Wing",
"data": {
"folded": {
"texture": {"u": 56, "v": 32, "w": 64, "h": 64},
diff --git a/src/main/resources/assets/minelittlepony/models/components/tail.json b/src/main/resources/assets/minelittlepony/models/components/tail.json
index cf84d991..06e2b6c1 100644
--- a/src/main/resources/assets/minelittlepony/models/components/tail.json
+++ b/src/main/resources/assets/minelittlepony/models/components/tail.json
@@ -10,28 +10,24 @@
"segment_0": {
"type": "mson:slot",
"name": "segment_0",
- "implementation": "com.minelittlepony.client.model.part.PonyTail$Segment",
"locals": { "segment_index": 0 },
"data": "minelittlepony:components/tail_segment"
},
"segment_1": {
"type": "mson:slot",
"name": "segment_1",
- "implementation": "com.minelittlepony.client.model.part.PonyTail$Segment",
"locals": { "segment_index": 1 },
"data": "minelittlepony:components/tail_segment"
},
"segment_2": {
"type": "mson:slot",
"name": "segment_2",
- "implementation": "com.minelittlepony.client.model.part.PonyTail$Segment",
"locals": { "segment_index": 2 },
"data": "minelittlepony:components/tail_segment"
},
"segment_3": {
"type": "mson:slot",
"name": "segment_3",
- "implementation": "com.minelittlepony.client.model.part.PonyTail$Segment",
"locals": { "segment_index": 3 },
"data": "minelittlepony:components/tail_segment"
}
diff --git a/src/main/resources/assets/minelittlepony/models/enderman.json b/src/main/resources/assets/minelittlepony/models/enderman.json
index 4317f5b0..b403c64a 100644
--- a/src/main/resources/assets/minelittlepony/models/enderman.json
+++ b/src/main/resources/assets/minelittlepony/models/enderman.json
@@ -11,24 +11,9 @@
{ "from": [-4, -6, -6], "size": [ 8, 8, 8] }
],
"children": {
- "snout": {
- "type": "mson:slot",
- "name": "snout",
- "implementation": "com.minelittlepony.client.model.part.PonySnout",
- "data": "minelittlepony:components/snout"
- },
- "ears": {
- "type": "mson:slot",
- "name": "ears",
- "implementation": "com.minelittlepony.client.model.part.PonyEars",
- "data": "minelittlepony:components/ears"
- },
- "horn": {
- "type": "mson:slot",
- "name": "horn",
- "implementation": "com.minelittlepony.client.model.part.UnicornHorn",
- "data": "minelittlepony:components/horn"
- },
+ "snout": { "data": "minelittlepony:components/snout" },
+ "ears": { "data": "minelittlepony:components/ears" },
+ "horn": { "data": "minelittlepony:components/horn" },
"left_horn": {
"texture": {"u": 0, "v": 52},
"name": "left_horn",
diff --git a/src/main/resources/assets/minelittlepony/models/races/steve/alicorn.json b/src/main/resources/assets/minelittlepony/models/races/steve/alicorn.json
index 3fd2d2cf..64dd3aa1 100644
--- a/src/main/resources/assets/minelittlepony/models/races/steve/alicorn.json
+++ b/src/main/resources/assets/minelittlepony/models/races/steve/alicorn.json
@@ -1,11 +1,6 @@
{
"parent": "minelittlepony:races/steve/unicorn",
"data": {
- "wings": {
- "type": "mson:slot",
- "name": "wings",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings",
- "data": "minelittlepony:components/pegasus_wings"
- }
+ "wings": { "data": "minelittlepony:components/pegasus_wings" }
}
}
diff --git a/src/main/resources/assets/minelittlepony/models/races/steve/bat_pony.json b/src/main/resources/assets/minelittlepony/models/races/steve/bat_pony.json
index 23acba2d..cb6ab9ca 100644
--- a/src/main/resources/assets/minelittlepony/models/races/steve/bat_pony.json
+++ b/src/main/resources/assets/minelittlepony/models/races/steve/bat_pony.json
@@ -6,25 +6,10 @@
{ "from": [-4, -6, -6], "size": [ 8, 8, 8] }
],
"children": {
- "snout": {
- "type": "mson:slot",
- "name": "snout",
- "implementation": "com.minelittlepony.client.model.part.PonySnout",
- "data": "minelittlepony:components/snout"
- },
- "ears": {
- "type": "mson:slot",
- "name": "ears",
- "implementation": "com.minelittlepony.client.model.part.PonyEars",
- "data": "minelittlepony:components/bat_ears"
- }
+ "snout": { "data": "minelittlepony:components/snout" },
+ "ears": { "data": "minelittlepony:components/bat_ears" }
}
},
- "wings": {
- "type": "mson:slot",
- "name": "wings",
- "implementation": "com.minelittlepony.client.model.part.BatWings",
- "data": "minelittlepony:components/bat_wings"
- }
+ "wings": { "data": "minelittlepony:components/bat_wings" }
}
}
diff --git a/src/main/resources/assets/minelittlepony/models/races/steve/changeling.json b/src/main/resources/assets/minelittlepony/models/races/steve/changeling.json
index ac8d7b42..0d60d4de 100644
--- a/src/main/resources/assets/minelittlepony/models/races/steve/changeling.json
+++ b/src/main/resources/assets/minelittlepony/models/races/steve/changeling.json
@@ -1,11 +1,6 @@
{
"parent": "minelittlepony:races/steve/alicorn",
"data": {
- "wings": {
- "type": "mson:slot",
- "name": "wings",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings",
- "data": "minelittlepony:components/bug_wings"
- }
+ "wings": { "data": "minelittlepony:components/bug_wings" }
}
}
diff --git a/src/main/resources/assets/minelittlepony/models/races/steve/kirin.json b/src/main/resources/assets/minelittlepony/models/races/steve/kirin.json
index 05a6dd84..3047f43f 100644
--- a/src/main/resources/assets/minelittlepony/models/races/steve/kirin.json
+++ b/src/main/resources/assets/minelittlepony/models/races/steve/kirin.json
@@ -7,15 +7,9 @@
],
"children": {
"snout": {
- "type": "mson:slot",
- "name": "snout",
- "implementation": "com.minelittlepony.client.model.part.PonySnout",
- "data": "minelittlepony:components/snout"
- },
+ "data": "minelittlepony:components/snout"
+ },
"ears": {
- "type": "mson:slot",
- "name": "ears",
- "implementation": "com.minelittlepony.client.model.part.PonyEars",
"locals": {
"ear_pronouncement": 0.9,
"ear_spread": 3
@@ -23,9 +17,6 @@
"data": "minelittlepony:components/ears"
},
"horn": {
- "type": "mson:slot",
- "name": "horn",
- "implementation": "com.minelittlepony.client.model.part.UnicornHorn",
"locals": {
"incline": 19,
"scale": 0.5
@@ -50,8 +41,6 @@
}
},
"tail": {
- "type": "mson:slot",
- "name": "tail",
"implementation": "com.minelittlepony.client.model.part.LionTail",
"data": "minelittlepony:components/lion_tail"
}
diff --git a/src/main/resources/assets/minelittlepony/models/races/steve/pegasus.json b/src/main/resources/assets/minelittlepony/models/races/steve/pegasus.json
index 4716f171..543d9f57 100644
--- a/src/main/resources/assets/minelittlepony/models/races/steve/pegasus.json
+++ b/src/main/resources/assets/minelittlepony/models/races/steve/pegasus.json
@@ -1,11 +1,6 @@
{
"parent": "minelittlepony:steve_pony",
"data": {
- "wings": {
- "type": "mson:slot",
- "name": "wings",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings",
- "data": "minelittlepony:components/pegasus_wings"
- }
+ "wings": { "data": "minelittlepony:components/pegasus_wings" }
}
}
diff --git a/src/main/resources/assets/minelittlepony/models/races/steve/reformed_changeling.json b/src/main/resources/assets/minelittlepony/models/races/steve/reformed_changeling.json
index 988ec253..b1b6812b 100644
--- a/src/main/resources/assets/minelittlepony/models/races/steve/reformed_changeling.json
+++ b/src/main/resources/assets/minelittlepony/models/races/steve/reformed_changeling.json
@@ -6,16 +6,8 @@
{ "from": [-4, -6, -6], "size": [ 8, 8, 8] }
],
"children": {
- "snout": {
- "type": "mson:slot",
- "name": "snout",
- "implementation": "com.minelittlepony.client.model.part.PonySnout",
- "data": "minelittlepony:components/snout"
- },
+ "snout": { "data": "minelittlepony:components/snout" },
"ears": {
- "type": "mson:slot",
- "name": "ears",
- "implementation": "com.minelittlepony.client.model.part.PonyEars",
"texture": {"w": 64, "h": 64 },
"data": {
"right": {
@@ -48,12 +40,7 @@
}
}
},
- "horn": {
- "type": "mson:slot",
- "name": "horn",
- "implementation": "com.minelittlepony.client.model.part.UnicornHorn",
- "data": "minelittlepony:components/horn"
- },
+ "horn": { "data": "minelittlepony:components/horn" },
"right_antler": {
"pivot": [-2, -6, -2],
"rotate": [0, 0, 120],
@@ -97,12 +84,10 @@
"wings": {
"type": "mson:slot",
"name": "wings",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings",
"data": {
"left_wing": {
"type": "mson:slot",
"name": "left_wing",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings$Wing",
"data": {
"folded": "#extended",
"extended": {
@@ -126,7 +111,6 @@
"right_wing": {
"type": "mson:slot",
"name": "right_wing",
- "implementation": "com.minelittlepony.client.model.part.PegasusWings$Wing",
"data": {
"folded": "#extended",
"extended": {
diff --git a/src/main/resources/assets/minelittlepony/models/races/steve/sea_pony.json b/src/main/resources/assets/minelittlepony/models/races/steve/sea_pony.json
index 04c6829e..a231dfc5 100644
--- a/src/main/resources/assets/minelittlepony/models/races/steve/sea_pony.json
+++ b/src/main/resources/assets/minelittlepony/models/races/steve/sea_pony.json
@@ -1,22 +1,5 @@
{
"parent": "minelittlepony:races/steve/alicorn",
- "skeleton": {
- "abdomin": {
- "body": {
- "neck": {
- "head": {
- "horn": {}
- }
- },
- "left_arm": {},
- "right_arm": {}
- },
- "left_fin": {},
- "right_fin": {},
- "center_fin": {},
- "tail": { }
- }
- },
"data": {
"left_fin": {
"type": "mson:planar",
@@ -45,8 +28,6 @@
]
},
"tail": {
- "type": "mson:slot",
- "name": "tail",
"implementation": "com.minelittlepony.client.model.part.SeaponyTail",
"data": "minelittlepony:components/fish_tail"
}
diff --git a/src/main/resources/assets/minelittlepony/models/races/steve/unicorn.json b/src/main/resources/assets/minelittlepony/models/races/steve/unicorn.json
index dc6df78c..7beb60aa 100644
--- a/src/main/resources/assets/minelittlepony/models/races/steve/unicorn.json
+++ b/src/main/resources/assets/minelittlepony/models/races/steve/unicorn.json
@@ -6,24 +6,9 @@
{ "from": [-4, -6, -6], "size": [ 8, 8, 8] }
],
"children": {
- "snout": {
- "type": "mson:slot",
- "name": "snout",
- "implementation": "com.minelittlepony.client.model.part.PonySnout",
- "data": "minelittlepony:components/snout"
- },
- "ears": {
- "type": "mson:slot",
- "name": "ears",
- "implementation": "com.minelittlepony.client.model.part.PonyEars",
- "data": "minelittlepony:components/ears"
- },
- "horn": {
- "type": "mson:slot",
- "name": "horn",
- "implementation": "com.minelittlepony.client.model.part.UnicornHorn",
- "data": "minelittlepony:components/horn"
- }
+ "snout": { "data": "minelittlepony:components/snout" },
+ "ears": { "data": "minelittlepony:components/ears" },
+ "horn": { "data": "minelittlepony:components/horn" }
}
},
"right_cast": {
diff --git a/src/main/resources/assets/minelittlepony/models/races/steve/zebra.json b/src/main/resources/assets/minelittlepony/models/races/steve/zebra.json
index 1fe7c1e6..ad6888c7 100644
--- a/src/main/resources/assets/minelittlepony/models/races/steve/zebra.json
+++ b/src/main/resources/assets/minelittlepony/models/races/steve/zebra.json
@@ -11,18 +11,8 @@
{ "from": [-4, -6, -6], "size": [ 8, 8, 8] }
],
"children": {
- "snout": {
- "type": "mson:slot",
- "name": "snout",
- "implementation": "com.minelittlepony.client.model.part.PonySnout",
- "data": "minelittlepony:components/snout"
- },
- "ears": {
- "type": "mson:slot",
- "name": "ears",
- "implementation": "com.minelittlepony.client.model.part.PonyEars",
- "data": "minelittlepony:components/ears"
- },
+ "snout": { "data": "minelittlepony:components/snout" },
+ "ears": { "data": "minelittlepony:components/ears" },
"bristles": {
"texture": {"u": 56, "v": 32},
"rotate": [17, 0, 0],