diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index 0a82edf0..48265f39 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -7,6 +7,7 @@ import com.minelittlepony.model.BodyPart; import com.minelittlepony.model.armour.IEquestrianArmour; import com.minelittlepony.mson.api.ModelContext; import com.minelittlepony.mson.api.model.MsonPart; +import com.minelittlepony.pony.meta.Race; import net.minecraft.client.model.ModelPart; import net.minecraft.client.render.VertexConsumer; @@ -561,7 +562,7 @@ public abstract class AbstractPonyModel extends ClientPo renderStage(BodyPart.HEAD, stack, vertices, overlayUv, lightUv, red, green, blue, alpha, this::renderHead); renderStage(BodyPart.LEGS, stack, vertices, overlayUv, lightUv, red, green, blue, alpha, this::renderLegs); - if (textureHeight == 64) { + if (textureHeight == 64 && getMetadata().getRace() != Race.SEAPONY) { renderStage(BodyPart.LEGS, stack, vertices, overlayUv, lightUv, red, green, blue, alpha, this::renderSleeves); renderStage(BodyPart.BODY, stack, vertices, overlayUv, lightUv, red, green, blue, alpha, this::renderVest); } diff --git a/src/main/java/com/minelittlepony/client/model/ModelType.java b/src/main/java/com/minelittlepony/client/model/ModelType.java index bb652c82..a90b7068 100644 --- a/src/main/java/com/minelittlepony/client/model/ModelType.java +++ b/src/main/java/com/minelittlepony/client/model/ModelType.java @@ -20,6 +20,7 @@ import com.minelittlepony.client.model.entity.race.AlicornModel; import com.minelittlepony.client.model.entity.race.ChangelingModel; import com.minelittlepony.client.model.entity.race.EarthPonyModel; import com.minelittlepony.client.model.entity.race.PegasusModel; +import com.minelittlepony.client.model.entity.race.SeaponyModel; import com.minelittlepony.client.model.entity.race.UnicornModel; import com.minelittlepony.client.model.entity.race.ZebraModel; import com.minelittlepony.client.model.gear.ChristmasHat; @@ -80,7 +81,7 @@ public final class ModelType { public static final PlayerModelKey> GRYPHON = registerPlayer("gryphon", Race.GRYPHON, PegasusModel::new); public static final PlayerModelKey> HIPPOGRIFF = registerPlayer("hippogriff", Race.HIPPOGRIFF, PegasusModel::new); public static final PlayerModelKey> EARTH_PONY = registerPlayer("earth_pony", Race.EARTH, EarthPonyModel::new); - public static final PlayerModelKey> SEA_PONY = registerPlayer("sea_pony", Race.SEAPONY, EarthPonyModel::new, PlayerSeaponyRenderer::new); + public static final PlayerModelKey> SEA_PONY = registerPlayer("sea_pony", Race.SEAPONY, SeaponyModel::new, PlayerSeaponyRenderer::new); public static final PlayerModelKey> BAT_PONY = registerPlayer("bat_pony", Race.BATPONY, PegasusModel::new); public static final PlayerModelKey> CHANGELING = registerPlayer("changeling", Race.CHANGELING, ChangelingModel::new); public static final PlayerModelKey> CHANGEDLING = registerPlayer("reformed_changeling", Race.CHANGEDLING, ChangelingModel::new); diff --git a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java index 59f84b86..b84fce10 100644 --- a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java +++ b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java @@ -132,12 +132,21 @@ public class EquineRenderManager getModelWrapper() { + return playerModel; + } + public ModelWrapper setModel(ModelKey key) { playerModel = new ModelWrapper<>(key); return playerModel; } + public ModelWrapper setModel(ModelWrapper wrapper) { + playerModel = wrapper; + return wrapper; + } + public void updateMetadata(Identifier texture) { pony = MineLittlePony.getInstance().getManager().getPony(texture); playerModel.apply(pony.getMetadata()); 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 e0c11dd0..52d82dbe 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PlayerSeaponyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PlayerSeaponyRenderer.java @@ -2,6 +2,7 @@ package com.minelittlepony.client.render.entity; import com.minelittlepony.client.model.ClientPonyModel; import com.minelittlepony.client.model.ModelType; +import com.minelittlepony.client.model.ModelWrapper; import com.minelittlepony.mson.api.ModelKey; import com.minelittlepony.pony.IPony; import com.minelittlepony.pony.meta.Race; @@ -13,14 +14,14 @@ import net.minecraft.particle.ParticleTypes; public class PlayerSeaponyRenderer extends PlayerPonyRenderer { - protected final ModelKey> seapony; - protected final ModelKey> normalPony; + private final ModelWrapper> seapony; + private final ModelWrapper> normalPony; public PlayerSeaponyRenderer(EntityRenderDispatcher manager, boolean slim, ModelKey> key) { super(manager, slim, key); - seapony = ModelType.>getPlayerModel(Race.UNICORN).getKey(slim); - normalPony = key; + normalPony = new ModelWrapper<>(ModelType.>getPlayerModel(Race.UNICORN).getKey(slim)); + seapony = this.manager.getModelWrapper(); } @Override