From 89a8e36e10705e86603216687684240e4c7ec42a Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 11 Jun 2022 21:00:45 +0200 Subject: [PATCH] Switch the model wrappers to use records --- .../client/model/AbstractPonyModel.java | 2 +- .../client/model/ModelWrapper.java | 14 ----------- .../client/model/armour/ArmourWrapper.java | 24 ++++++++----------- .../model/entity/race/SeaponyModel.java | 2 +- .../client/model/entity/race/ZebraModel.java | 2 +- .../client/render/EquineRenderManager.java | 2 +- .../client/render/IPonyRenderContext.java | 2 +- .../render/entity/PlayerPonyRenderer.java | 2 +- .../render/entity/PlayerSeaponyRenderer.java | 2 +- .../client/render/entity/PonyRenderer.java | 2 +- .../render/entity/PonyStandRenderer.java | 6 ++--- .../render/entity/feature/ArmourFeature.java | 12 +++++----- .../render/entity/feature/DJPon3Feature.java | 2 +- .../render/entity/feature/ElytraFeature.java | 2 +- .../render/entity/feature/GearFeature.java | 2 +- .../render/entity/feature/SkullFeature.java | 2 +- 16 files changed, 31 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index 8d2aa0fe..d23e0445 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -39,7 +39,7 @@ public abstract class AbstractPonyModel extends ClientPo @Override public IArmour createArmour() { - return new ArmourWrapper<>(PonyArmourModel::new); + return ArmourWrapper.of(PonyArmourModel::new); } /** diff --git a/src/main/java/com/minelittlepony/client/model/ModelWrapper.java b/src/main/java/com/minelittlepony/client/model/ModelWrapper.java index 7f5778bf..02f1c674 100644 --- a/src/main/java/com/minelittlepony/client/model/ModelWrapper.java +++ b/src/main/java/com/minelittlepony/client/model/ModelWrapper.java @@ -4,7 +4,6 @@ import net.minecraft.entity.LivingEntity; import com.minelittlepony.api.model.IModel; import com.minelittlepony.api.model.IModelWrapper; -import com.minelittlepony.api.model.armour.IArmourModel; import com.minelittlepony.api.model.armour.IArmour; import com.minelittlepony.api.pony.IPonyData; import com.minelittlepony.mson.api.ModelKey; @@ -16,7 +15,6 @@ public record ModelWrapper ( M body, IArmour armor ) implements IModelWrapper { - /** * Creates a new model wrapper to contain the given pony. */ @@ -27,18 +25,6 @@ public record ModelWrapper ( return new ModelWrapper<>(body, armor); } - public M getBody() { - return body(); - } - - /** - * Returns the contained armour models. - */ - @SuppressWarnings("unchecked") - public IArmour getArmor() { - return (IArmour)armor(); - } - @Override public ModelWrapper applyMetadata(IPonyData meta) { body.setMetadata(meta); diff --git a/src/main/java/com/minelittlepony/client/model/armour/ArmourWrapper.java b/src/main/java/com/minelittlepony/client/model/armour/ArmourWrapper.java index 8392c73e..753cf067 100644 --- a/src/main/java/com/minelittlepony/client/model/armour/ArmourWrapper.java +++ b/src/main/java/com/minelittlepony/client/model/armour/ArmourWrapper.java @@ -8,14 +8,15 @@ import com.minelittlepony.api.pony.IPonyData; import com.minelittlepony.client.model.ModelType; import com.minelittlepony.mson.api.MsonModel; -public class ArmourWrapper implements IArmour> { - - private final PonyArmourModel outerLayer; - private final PonyArmourModel innerLayer; - - public ArmourWrapper(MsonModel.Factory> supplier) { - outerLayer = ModelType.ARMOUR_OUTER.createModel(supplier); - innerLayer = ModelType.ARMOUR_INNER.createModel(supplier); +public record ArmourWrapper ( + PonyArmourModel outerLayer, + PonyArmourModel innerLayer + ) implements IArmour> { + public static ArmourWrapper of(MsonModel.Factory> supplier) { + return new ArmourWrapper<>( + ModelType.ARMOUR_OUTER.createModel(supplier), + ModelType.ARMOUR_INNER.createModel(supplier) + ); } @Override @@ -27,11 +28,6 @@ public class ArmourWrapper implements IArmour getModel(ArmourLayer layer) { - - if (layer == ArmourLayer.INNER) { - return innerLayer; - } - - return outerLayer; + return layer == ArmourLayer.INNER ? innerLayer : outerLayer; } } 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 bdd2a4ee..c2d739a4 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 @@ -42,7 +42,7 @@ public class SeaponyModel extends UnicornModel { @Override public IArmour createArmour() { - return new ArmourWrapper<>(Armour::new); + return ArmourWrapper.of(Armour::new); } @Override diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/ZebraModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/ZebraModel.java index 9910e09a..10ee73ff 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/ZebraModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/ZebraModel.java @@ -17,7 +17,7 @@ public class ZebraModel extends EarthPonyModel { @Override public IArmour createArmour() { - return new ArmourWrapper<>(Armour::new); + return ArmourWrapper.of(Armour::new); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java index 8c1ed3eb..5c852226 100644 --- a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java +++ b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java @@ -129,7 +129,7 @@ public class EquineRenderManager getModelWrapper() { diff --git a/src/main/java/com/minelittlepony/client/render/IPonyRenderContext.java b/src/main/java/com/minelittlepony/client/render/IPonyRenderContext.java index 1ee91991..8414992c 100644 --- a/src/main/java/com/minelittlepony/client/render/IPonyRenderContext.java +++ b/src/main/java/com/minelittlepony/client/render/IPonyRenderContext.java @@ -40,7 +40,7 @@ public interface IPonyRenderContext> key) { super(context, slim); - this.model = manager.setModel(key).getBody(); + this.model = manager.setModel(key).body(); addLayers(context); } diff --git a/src/main/java/com/minelittlepony/client/render/entity/PlayerSeaponyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/PlayerSeaponyRenderer.java index 2909fbcc..3342b1ee 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PlayerSeaponyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PlayerSeaponyRenderer.java @@ -37,7 +37,7 @@ public class PlayerSeaponyRenderer extends PlayerPonyRenderer { boolean wet = pony.isPartiallySubmerged(player); - model = manager.setModel(wet ? seapony : normalPony).getBody(); + model = manager.setModel(wet ? seapony : normalPony).body(); float state = wet ? 100 : 0; float interpolated = pony.getMetadata().getInterpolator(player.getUuid()).interpolate("seapony_state", state, 5); diff --git a/src/main/java/com/minelittlepony/client/render/entity/PonyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/PonyRenderer.java index 64a56894..7f7d5fd0 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PonyRenderer.java @@ -38,7 +38,7 @@ public abstract class PonyRenderer public PonyRenderer(EntityRendererFactory.Context context, ModelKey key) { super(context, null, 0.5F); - this.model = manager.setModel(key).getBody(); + this.model = manager.setModel(key).body(); addLayers(context); } diff --git a/src/main/java/com/minelittlepony/client/render/entity/PonyStandRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/PonyStandRenderer.java index 169dd778..fc12b18e 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PonyStandRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PonyStandRenderer.java @@ -72,9 +72,9 @@ public class PonyStandRenderer extends ArmorStandEntityRenderer { headPitch = 0.017453292F * entity.getHeadRotation().getPitch(); headYaw = 0.017453292F * entity.getHeadRotation().getYaw(); - pony.getBody().animateModel(entity, limbDistance, limbAngle, tickDelta); - pony.getBody().setAngles(entity, limbDistance, limbAngle, age, headYaw, headPitch); - PonyStandRenderer.this.pony.applyAnglesTo(pony.getBody()); + pony.body().animateModel(entity, limbDistance, limbAngle, tickDelta); + pony.body().setAngles(entity, limbDistance, limbAngle, age, headYaw, headPitch); + PonyStandRenderer.this.pony.applyAnglesTo(pony.body()); for (EquipmentSlot i : EquipmentSlot.values()) { if (i.getType() == EquipmentSlot.Type.ARMOR) { diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java index e56c6fe5..5a72ce30 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java @@ -46,6 +46,7 @@ public class ArmourFeature & IP } } + @SuppressWarnings("unchecked") public static & IArmourModel> void renderArmor( ModelWrapper> pony, MatrixStack stack, VertexConsumerProvider renderContext, int lightUv, T entity, @@ -56,20 +57,19 @@ public class ArmourFeature & IP ItemStack itemstack = entity.getEquippedStack(armorSlot); if (!itemstack.isEmpty() && itemstack.getItem() instanceof ArmorItem) { + IArmour armour = ArmourRegistry.getArmour(itemstack, (IArmour)pony.armor()); - IArmour armour = ArmourRegistry.getArmour(itemstack, pony.getArmor()); - - armour.applyMetadata(pony.getBody().getMetadata()); + armour.applyMetadata(pony.body().getMetadata()); V model = armour.getModel(layer); if (model == null) { - model = pony.getArmor().getModel(layer); + model = ((IArmour)pony.armor()).getModel(layer); } if (model.prepareToRender(armorSlot, layer)) { - pony.getBody().copyAttributes(model); + pony.body().copyAttributes(model); model.setAngles(entity, limbAngle, limbDistance, age, headYaw, headPitch); - model.synchroniseAngles(pony.getBody()); + model.synchroniseAngles(pony.body()); ArmorItem item = (ArmorItem) itemstack.getItem(); diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/DJPon3Feature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/DJPon3Feature.java index 1d2d8b2b..5749dce2 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/DJPon3Feature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/DJPon3Feature.java @@ -26,7 +26,7 @@ public class DJPon3Feature & IP } protected void preRenderCallback(MatrixStack stack) { - M body = getModelWrapper().getBody(); + M body = getModelWrapper().body(); stack.translate(0, body.getRiderYOffset(), 0.125); body.transform(BodyPart.BODY, stack); } diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/GearFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/GearFeature.java index 0a7b274b..57e0b01c 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/GearFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/GearFeature.java @@ -50,7 +50,7 @@ public class GearFeature & IPon return; } - final M model = getModelWrapper().getBody(); + final M model = getModelWrapper().body(); final Map renderStackingOffsets = new HashMap<>(); diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java index ab2e1596..cb0b6db9 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java @@ -43,7 +43,7 @@ public class SkullFeature & IPo public void render(MatrixStack stack, VertexConsumerProvider renderContext, int lightUv, T entity, float limbDistance, float limbAngle, float tickDelta, float age, float headYaw, float headPitch) { ItemStack itemstack = entity.getEquippedStack(EquipmentSlot.HEAD); if (!itemstack.isEmpty()) { - M model = getContext().getModelWrapper().getBody(); + M model = getContext().getModelWrapper().body(); Item item = itemstack.getItem(); stack.push();