From 79db99719c5e5a5db2482e94a0bb6067325b6884 Mon Sep 17 00:00:00 2001 From: Sollace Date: Mon, 25 Nov 2019 16:08:57 +0200 Subject: [PATCH] Convert the models to mson --- .../client/model/AbstractPonyModel.java | 27 ++++++++++++++++++- .../model/entity/ModelEnderStallion.java | 9 +++++++ .../client/model/entity/ModelSeapony.java | 10 +++++++ .../model/entity/ModelSkeletonPony.java | 12 ++------- .../model/entity/ModelVillagerPony.java | 8 ++++++ .../model/entity/race/ModelAlicorn.java | 9 ++++++- .../model/entity/race/ModelBatpony.java | 1 + .../model/entity/race/ModelEarthPony.java | 15 +++++++---- .../model/entity/race/ModelPegasus.java | 7 +++++ .../model/entity/race/ModelUnicorn.java | 15 ++++++++--- 10 files changed, 93 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index d20cec83..66614d5c 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -7,7 +7,11 @@ import com.minelittlepony.client.transform.PonyTransformation; import com.minelittlepony.model.BodyPart; import com.minelittlepony.model.IPart; import com.minelittlepony.model.armour.IEquestrianArmour; +import com.minelittlepony.mson.api.ModelContext; +import com.minelittlepony.mson.api.mixin.Extends; +import com.minelittlepony.mson.api.mixin.MixedMsonModel; import com.minelittlepony.mson.api.model.MsonPart; +import com.minelittlepony.mson.api.model.biped.MsonBiped; import net.minecraft.client.model.ModelPart; import net.minecraft.client.render.VertexConsumer; @@ -21,7 +25,9 @@ import net.minecraft.util.math.MathHelper; /** * Foundation class for all types of ponies. */ -public abstract class AbstractPonyModel extends ClientPonyModel { +@Extends(MsonBiped.class) +public abstract class AbstractPonyModel extends ClientPonyModel + implements MixedMsonModel { protected ModelPart upperTorso; protected ModelPart upperTorsoOverlay; @@ -36,6 +42,25 @@ public abstract class AbstractPonyModel extends ClientPo super(0, arms); } + @Override + public void init(ModelContext context) { + MixedMsonModel.super.init(context); + context.findByName("left_sleeve", leftSleeve); + context.findByName("right_sleeve", rightSleeve); + + context.findByName("left_pant_leg", leftPantLeg); + context.findByName("right_pant_leg", rightPantLeg); + + context.findByName("jacket", jacket); + + upperTorso = context.findByName("upper_torso"); + upperTorsoOverlay = context.findByName("saddle"); + neck = context.findByName("neck"); + tail = context.findByName("tail"); + snout = context.findByName("snout"); + ears = context.findByName("ears"); + } + @Override public IEquestrianArmour createArmour() { return new ArmourWrapper<>(ModelPonyArmour::new); diff --git a/src/main/java/com/minelittlepony/client/model/entity/ModelEnderStallion.java b/src/main/java/com/minelittlepony/client/model/entity/ModelEnderStallion.java index 05a72ed4..24a7bf16 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/ModelEnderStallion.java +++ b/src/main/java/com/minelittlepony/client/model/entity/ModelEnderStallion.java @@ -6,6 +6,8 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.mob.EndermanEntity; import net.minecraft.util.math.MathHelper; +import com.minelittlepony.mson.api.ModelContext; + public class ModelEnderStallion extends ModelSkeletonPony { public boolean isCarrying; @@ -22,6 +24,13 @@ public class ModelEnderStallion extends ModelSkeletonPony { attributes.visualHeight = 3; } + @Override + public void init(ModelContext context) { + super.init(context); + leftHorn = context.findByName("left_horn"); + rightHorn = context.findByName("right_horn"); + } + @Override public void animateModel(EndermanEntity entity, float move, float swing, float ticks) { rightArmPose = isCarrying ? ArmPose.BLOCK : ArmPose.EMPTY; diff --git a/src/main/java/com/minelittlepony/client/model/entity/ModelSeapony.java b/src/main/java/com/minelittlepony/client/model/entity/ModelSeapony.java index b9bc2652..273ea780 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/ModelSeapony.java +++ b/src/main/java/com/minelittlepony/client/model/entity/ModelSeapony.java @@ -5,6 +5,7 @@ import com.minelittlepony.client.model.entity.race.ModelUnicorn; import com.minelittlepony.client.model.armour.ArmourWrapper; import com.minelittlepony.model.BodyPart; import com.minelittlepony.model.armour.IEquestrianArmour; +import com.minelittlepony.mson.api.ModelContext; import com.minelittlepony.pony.IPony; import com.mojang.blaze3d.platform.GlStateManager; @@ -31,6 +32,15 @@ public class ModelSeapony extends ModelUnicorn { this(false); } + @Override + public void init(ModelContext context) { + super.init(context); + bodyCenter = context.findByName("abdomin"); + leftFin = context.findByName("left_fin"); + rightFin = context.findByName("right_fin"); + centerFin = context.findByName("center_fin"); + } + @Override public IEquestrianArmour createArmour() { return new ArmourWrapper<>(Armour::new); diff --git a/src/main/java/com/minelittlepony/client/model/entity/ModelSkeletonPony.java b/src/main/java/com/minelittlepony/client/model/entity/ModelSkeletonPony.java index 2d71edf6..d969c32b 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/ModelSkeletonPony.java +++ b/src/main/java/com/minelittlepony/client/model/entity/ModelSkeletonPony.java @@ -65,19 +65,11 @@ public class ModelSkeletonPony extends ModelAlicorn protected void rotateLegs(float move, float swing, float ticks, T entity) { super.rotateLegs(move, swing, ticks, entity); if (rightArmPose != ArmPose.EMPTY) { - if (canCast()) { - rotateArmHolding(unicornArmRight, -1, getSwingAmount(), ticks); - } else { - rotateArmHolding(rightArm, -1, getSwingAmount(), ticks); - } + rotateArmHolding(getArm(Arm.RIGHT), -1, getSwingAmount(), ticks); } if (leftArmPose != ArmPose.EMPTY) { - if (canCast()) { - rotateArmHolding(unicornArmLeft, -1, getSwingAmount(), ticks); - } else { - rotateArmHolding(leftArm, -1, getSwingAmount(), ticks); - } + rotateArmHolding(getArm(Arm.LEFT), -1, getSwingAmount(), ticks); } } diff --git a/src/main/java/com/minelittlepony/client/model/entity/ModelVillagerPony.java b/src/main/java/com/minelittlepony/client/model/entity/ModelVillagerPony.java index 48e37998..0987d5b0 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/ModelVillagerPony.java +++ b/src/main/java/com/minelittlepony/client/model/entity/ModelVillagerPony.java @@ -13,6 +13,7 @@ import net.minecraft.village.VillagerProfession; import com.minelittlepony.client.model.entity.race.ModelAlicorn; import com.minelittlepony.client.render.entity.villager.PonyTextures; import com.minelittlepony.model.IPart; +import com.minelittlepony.mson.api.ModelContext; import com.minelittlepony.pony.meta.Race; public class ModelVillagerPony extends ModelAlicorn implements ModelWithHat { @@ -26,6 +27,13 @@ public class ModelVillagerPony e super(false); } + @Override + public void init(ModelContext context) { + super.init(context); + apron = context.findByName("apron"); + trinket = context.findByName("trinket"); + } + @Override public IPart getWings() { if (getMetadata().getRace() == Race.BATPONY) { diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/ModelAlicorn.java b/src/main/java/com/minelittlepony/client/model/entity/race/ModelAlicorn.java index 73a16b64..8b0a866b 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/ModelAlicorn.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/ModelAlicorn.java @@ -2,6 +2,7 @@ package com.minelittlepony.client.model.entity.race; import com.minelittlepony.model.IPart; import com.minelittlepony.model.IPegasus; +import com.minelittlepony.mson.api.ModelContext; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.util.math.MatrixStack; @@ -9,12 +10,18 @@ import net.minecraft.entity.LivingEntity; public class ModelAlicorn extends ModelUnicorn implements IPegasus { - protected IPart wings; + private IPart wings; public ModelAlicorn(boolean smallArms) { super(smallArms); } + @Override + public void init(ModelContext context) { + super.init(context); + wings = context.findByName("wings"); + } + @Override public IPart getWings() { return wings; diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/ModelBatpony.java b/src/main/java/com/minelittlepony/client/model/entity/race/ModelBatpony.java index f0376f3f..73cccf55 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/ModelBatpony.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/ModelBatpony.java @@ -2,6 +2,7 @@ package com.minelittlepony.client.model.entity.race; import net.minecraft.entity.LivingEntity; +@Deprecated public class ModelBatpony extends ModelPegasus { public ModelBatpony(boolean smallArms) { super(smallArms); diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/ModelEarthPony.java b/src/main/java/com/minelittlepony/client/model/entity/race/ModelEarthPony.java index 68d74b8b..8a637e17 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/ModelEarthPony.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/ModelEarthPony.java @@ -1,6 +1,7 @@ package com.minelittlepony.client.model.entity.race; import com.minelittlepony.client.model.AbstractPonyModel; +import com.minelittlepony.mson.api.ModelContext; import net.minecraft.client.model.ModelPart; import net.minecraft.entity.LivingEntity; @@ -9,25 +10,29 @@ public class ModelEarthPony extends AbstractPonyModel private final boolean smallArms; - public ModelPart bipedCape; + private ModelPart cape; public ModelEarthPony(boolean smallArms) { super(smallArms); this.smallArms = smallArms; } + @Override + public void init(ModelContext context) { + super.init(context); + cape = context.findByName("cape"); + } + @Override public void setAngles(T entity, float move, float swing, float ticks, float headYaw, float headPitch) { super.setAngles(entity, move, swing, ticks, headYaw, headPitch); - bipedCape.pivotY = isSneaking ? 2 : isRiding ? -4 : 0; + cape.pivotY = isSneaking ? 2 : isRiding ? -4 : 0; } @Override protected float getLegOutset() { if (smallArms) { - if (attributes.isSleeping) return 2.6f; - if (attributes.isCrouching) return 1; - return 4; + return Math.max(1, super.getLegOutset() - 1); } return super.getLegOutset(); } diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/ModelPegasus.java b/src/main/java/com/minelittlepony/client/model/entity/race/ModelPegasus.java index 91e9f80d..a58fafd5 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/ModelPegasus.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/ModelPegasus.java @@ -2,6 +2,7 @@ package com.minelittlepony.client.model.entity.race; import com.minelittlepony.model.IPart; import com.minelittlepony.model.IPegasus; +import com.minelittlepony.mson.api.ModelContext; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.util.math.MatrixStack; @@ -15,6 +16,12 @@ public class ModelPegasus extends ModelEarthPony impl super(smallArms); } + @Override + public void init(ModelContext context) { + super.init(context); + wings = context.findByName("wings"); + } + @Override public IPart getWings() { return wings; diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/ModelUnicorn.java b/src/main/java/com/minelittlepony/client/model/entity/race/ModelUnicorn.java index 10546836..d93a6fbf 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/ModelUnicorn.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/ModelUnicorn.java @@ -2,6 +2,7 @@ package com.minelittlepony.client.model.entity.race; import com.minelittlepony.client.model.part.UnicornHorn; import com.minelittlepony.model.IUnicorn; +import com.minelittlepony.mson.api.ModelContext; import com.minelittlepony.mson.api.model.MsonPart; import net.minecraft.client.model.ModelPart; @@ -16,15 +17,23 @@ import net.minecraft.util.math.MathHelper; */ public class ModelUnicorn extends ModelEarthPony implements IUnicorn { - public ModelPart unicornArmRight; - public ModelPart unicornArmLeft; + protected ModelPart unicornArmRight; + protected ModelPart unicornArmLeft; - public UnicornHorn horn; + protected UnicornHorn horn; public ModelUnicorn(boolean smallArms) { super(smallArms); } + @Override + public void init(ModelContext context) { + super.init(context); + horn = context.findByName("horn"); + unicornArmRight = context.findByName("right_cast"); + unicornArmLeft = context.findByName("left_cast"); + } + @Override public float getWobbleAmount() { if (isCasting()) {