From 62d606ada472ccd2077d316e59bf263c5d1fa7f9 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 30 Apr 2024 18:32:05 +0100 Subject: [PATCH] Update skin type ids and implement apis for controlling what skin and model the player gets through mine little pony --- .../api/events/PonyModelPrepareCallback.java | 7 +- .../api/events/PonySkinResolver.java | 29 +++++++ .../api/model/PreviewModel.java | 6 +- .../api/pony/DefaultPonySkinHelper.java | 11 ++- .../com/minelittlepony/api/pony/PonyForm.java | 49 +++++++++++ .../minelittlepony/api/pony/PonyPosture.java | 19 +---- .../client/PonyManagerImpl.java | 8 +- .../client/compat/hdskins/DummyPony.java | 16 ++-- .../client/render/PonyRenderDispatcher.java | 78 +++++++----------- .../entity/AquaticPlayerPonyRenderer.java | 11 ++- .../FormChangingPlayerPonyRenderer.java | 14 +--- .../render/entity/PlayerPonyRenderer.java | 8 +- .../assets/minelittlepony/lang/af_za.json | 2 +- .../assets/minelittlepony/lang/de_de.json | 2 +- .../assets/minelittlepony/lang/en_gb.json | 2 +- .../assets/minelittlepony/lang/en_pt.json | 2 +- .../assets/minelittlepony/lang/en_ud.json | 2 +- .../assets/minelittlepony/lang/en_us.json | 4 +- .../assets/minelittlepony/lang/enus_enp.json | 2 +- .../assets/minelittlepony/lang/lol_us.json | 2 +- .../assets/minelittlepony/lang/ru_ru.json | 2 +- .../assets/minelittlepony/lang/sr_rs.json | 2 +- .../assets/minelittlepony/lang/zh_cn.json | 4 +- .../textures/gui/skin_type/nirik.png | Bin .../textures/gui/skin_type/seapony.png | Bin 25 files changed, 171 insertions(+), 111 deletions(-) create mode 100644 src/main/java/com/minelittlepony/api/events/PonySkinResolver.java create mode 100644 src/main/java/com/minelittlepony/api/pony/PonyForm.java rename src/main/resources/assets/{minelp => minelittlepony}/textures/gui/skin_type/nirik.png (100%) rename src/main/resources/assets/{minelp => minelittlepony}/textures/gui/skin_type/seapony.png (100%) diff --git a/src/main/java/com/minelittlepony/api/events/PonyModelPrepareCallback.java b/src/main/java/com/minelittlepony/api/events/PonyModelPrepareCallback.java index 5e6f9a6b..4d61c68f 100644 --- a/src/main/java/com/minelittlepony/api/events/PonyModelPrepareCallback.java +++ b/src/main/java/com/minelittlepony/api/events/PonyModelPrepareCallback.java @@ -7,8 +7,13 @@ import net.minecraft.entity.Entity; import com.minelittlepony.api.model.PonyModel; import com.minelittlepony.api.model.ModelAttributes; +/** + * Event triggered when a pony model's state is being evaluated. + *

+ * Subscribers have the option to read the pony model's attributes or modify them if neccessary to + * allow for custom animations. + */ public interface PonyModelPrepareCallback { - Event EVENT = EventFactory.createArrayBacked(PonyModelPrepareCallback.class, listeners -> (entity, model, mode) -> { for (PonyModelPrepareCallback event : listeners) { event.onPonyModelPrepared(entity, model, mode); diff --git a/src/main/java/com/minelittlepony/api/events/PonySkinResolver.java b/src/main/java/com/minelittlepony/api/events/PonySkinResolver.java new file mode 100644 index 00000000..cb79ab59 --- /dev/null +++ b/src/main/java/com/minelittlepony/api/events/PonySkinResolver.java @@ -0,0 +1,29 @@ +package com.minelittlepony.api.events; + +import net.fabricmc.fabric.api.event.Event; +import net.fabricmc.fabric.api.event.EventFactory; +import net.minecraft.entity.Entity; +import net.minecraft.util.Identifier; + +import org.jetbrains.annotations.Nullable; + +import com.minelittlepony.api.pony.Pony; + +/** + * Event for mods that want to replace the skin being used by a pony. + */ +public interface PonySkinResolver { + Event EVENT = EventFactory.createArrayBacked(PonySkinResolver.class, listeners -> (entity, pony, result) -> { + for (PonySkinResolver event : listeners) { + result = event.onPonySkinResolving(entity, pony, result); + } + return result; + }); + + @Nullable + Identifier onPonySkinResolving(Entity entity, PonyLookup ponyLookup, @Nullable Identifier previousResult); + + interface PonyLookup { + Pony getPony(Identifier skin); + } +} diff --git a/src/main/java/com/minelittlepony/api/model/PreviewModel.java b/src/main/java/com/minelittlepony/api/model/PreviewModel.java index 1bfdc008..a4a5fa5e 100644 --- a/src/main/java/com/minelittlepony/api/model/PreviewModel.java +++ b/src/main/java/com/minelittlepony/api/model/PreviewModel.java @@ -1,7 +1,7 @@ package com.minelittlepony.api.model; -public interface PreviewModel { - boolean forceSeapony(); +import net.minecraft.util.Identifier; - boolean forceNirik(); +public interface PreviewModel { + Identifier getForm(); } diff --git a/src/main/java/com/minelittlepony/api/pony/DefaultPonySkinHelper.java b/src/main/java/com/minelittlepony/api/pony/DefaultPonySkinHelper.java index 70b020c0..b1a2d2a1 100644 --- a/src/main/java/com/minelittlepony/api/pony/DefaultPonySkinHelper.java +++ b/src/main/java/com/minelittlepony/api/pony/DefaultPonySkinHelper.java @@ -6,16 +6,15 @@ import net.minecraft.util.Identifier; import net.minecraft.util.Util; import com.minelittlepony.api.pony.meta.Race; -import com.minelittlepony.client.MineLittlePony; import java.util.*; import java.util.function.Function; public final class DefaultPonySkinHelper { - public static final Identifier STEVE = MineLittlePony.id("textures/entity/player/wide/steve_pony.png"); + public static final Identifier STEVE = id("textures/entity/player/wide/steve_pony.png"); - public static final Identifier SEAPONY_SKIN_TYPE_ID = MineLittlePony.id("seapony"); - public static final Identifier NIRIK_SKIN_TYPE_ID = MineLittlePony.id("nirik"); + public static final Identifier SEAPONY_SKIN_TYPE_ID = id("seapony"); + public static final Identifier NIRIK_SKIN_TYPE_ID = id("nirik"); private static final Function SKINS = Util.memoize(original -> new SkinTextures( new Identifier("minelittlepony", original.texture().getPath().replace(".png", "_pony.png")), @@ -26,6 +25,10 @@ public final class DefaultPonySkinHelper { false )); + public static Identifier id(String name) { + return new Identifier("minelittlepony", name); + } + public static SkinTextures getTextures(SkinTextures original) { return SKINS.apply(original); } diff --git a/src/main/java/com/minelittlepony/api/pony/PonyForm.java b/src/main/java/com/minelittlepony/api/pony/PonyForm.java new file mode 100644 index 00000000..830e6525 --- /dev/null +++ b/src/main/java/com/minelittlepony/api/pony/PonyForm.java @@ -0,0 +1,49 @@ +package com.minelittlepony.api.pony; + +import net.minecraft.client.render.entity.EntityRendererFactory; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.util.Identifier; + +import org.jetbrains.annotations.Nullable; + +import com.minelittlepony.client.render.entity.PlayerPonyRenderer; + +import java.util.*; +import java.util.function.Predicate; + +/** + * The different forms a pony can take. + *

+ * The default is land, which is your typical pony with four legs. + * Other options are water (seaponies that go shoop-de-doo) + * And Niriks (the burning form of kirins) + */ +public record PonyForm(Identifier id, Predicate shouldApply, RendererFactory factory) { + public static final Identifier DEFAULT = DefaultPonySkinHelper.id("land"); + public static final Identifier SEAPONY = DefaultPonySkinHelper.id("seapony"); + public static final Identifier NIRIK = DefaultPonySkinHelper.id("nirik"); + + public static final List VALUES = new ArrayList<>(); + public static final Map REGISTRY = new HashMap<>(); + + public static void register(Identifier id, Predicate shouldApply, RendererFactory factory) { + VALUES.add(0, id); + REGISTRY.put(id, new PonyForm(id, shouldApply, factory)); + } + + @Nullable + public static PonyForm of(PlayerEntity player) { + for (Identifier id : VALUES) { + PonyForm form = REGISTRY.get(id); + if (form != null && form.shouldApply().test(player)) { + return form; + } + } + + return null; + } + + public interface RendererFactory { + T create(EntityRendererFactory.Context context, boolean slimArms); + } +} diff --git a/src/main/java/com/minelittlepony/api/pony/PonyPosture.java b/src/main/java/com/minelittlepony/api/pony/PonyPosture.java index b929eabd..2ad8b3c0 100644 --- a/src/main/java/com/minelittlepony/api/pony/PonyPosture.java +++ b/src/main/java/com/minelittlepony/api/pony/PonyPosture.java @@ -86,16 +86,9 @@ public final class PonyPosture { return isSitting(entity) && getMountPony(entity).map(Pony::race).orElse(Race.HUMAN) != Race.HUMAN; } - public static boolean isSeaponyModifier(LivingEntity entity) { - if (entity instanceof PreviewModel preview) { - return preview.forceSeapony(); - } - return hasSeaponyForm(entity) && isPartiallySubmerged(entity); - } - public static boolean hasSeaponyForm(LivingEntity entity) { if (entity instanceof PreviewModel preview) { - return preview.forceSeapony(); + return preview.getForm() == PonyForm.SEAPONY; } return Pony.getManager().getPony(entity).filter(pony -> { return (pony.race() == Race.SEAPONY @@ -104,17 +97,9 @@ public final class PonyPosture { }).isPresent(); } - public static boolean isNirikModifier(LivingEntity entity) { - if (entity instanceof PreviewModel preview) { - return preview.forceNirik(); - } - return false; - } - - public static boolean hasNirikForm(LivingEntity entity) { if (entity instanceof PreviewModel preview) { - return preview.forceNirik(); + return preview.getForm() == PonyForm.NIRIK; } return Pony.getManager().getPony(entity).filter(pony -> { return (pony.race() == Race.KIRIN diff --git a/src/main/java/com/minelittlepony/client/PonyManagerImpl.java b/src/main/java/com/minelittlepony/client/PonyManagerImpl.java index 46e86892..51e8d8d3 100644 --- a/src/main/java/com/minelittlepony/client/PonyManagerImpl.java +++ b/src/main/java/com/minelittlepony/client/PonyManagerImpl.java @@ -1,8 +1,10 @@ package com.minelittlepony.client; +import com.google.common.base.MoreObjects; import com.google.common.cache.*; import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.api.config.PonyLevel; +import com.minelittlepony.api.events.PonySkinResolver; import com.minelittlepony.api.pony.*; import com.minelittlepony.client.render.blockentity.skull.PonySkullRenderer; @@ -50,7 +52,10 @@ public class PonyManagerImpl implements PonyManager, SimpleSynchronousResourceRe @Override public Pony getPony(PlayerEntity player) { - return getPony(getSkin(player), player instanceof ForcedPony ? null : player.getGameProfile() == null ? player.getUuid() : player.getGameProfile().getId()); + final UUID id = player instanceof ForcedPony ? null : player.getGameProfile() == null ? player.getUuid() : player.getGameProfile().getId(); + Identifier skin = getSkin(player); + skin = MoreObjects.firstNonNull(PonySkinResolver.EVENT.invoker().onPonySkinResolving(player, s -> getPony(s, id), skin), skin); + return getPony(skin, id); } @Override @@ -59,6 +64,7 @@ public class PonyManagerImpl implements PonyManager, SimpleSynchronousResourceRe return Optional.of(getPony(player)); } Identifier skin = getSkin(entity); + skin = MoreObjects.firstNonNull(PonySkinResolver.EVENT.invoker().onPonySkinResolving(entity, s -> getPony(s, null), skin), skin); return skin == null ? Optional.empty() : Optional.of(getPony(skin, null)); } diff --git a/src/main/java/com/minelittlepony/client/compat/hdskins/DummyPony.java b/src/main/java/com/minelittlepony/client/compat/hdskins/DummyPony.java index 93a45ab6..63b163e3 100644 --- a/src/main/java/com/minelittlepony/client/compat/hdskins/DummyPony.java +++ b/src/main/java/com/minelittlepony/client/compat/hdskins/DummyPony.java @@ -1,6 +1,7 @@ package com.minelittlepony.client.compat.hdskins; import net.minecraft.client.world.ClientWorld; +import net.minecraft.util.Identifier; import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.api.pony.*; @@ -20,12 +21,13 @@ class DummyPony extends DummyPlayer implements PreviewModel, PonyManager.ForcedP } @Override - public boolean forceSeapony() { - return getTextures().getPosture().getActiveSkinType() == MineLPHDSkins.seaponySkinType; - } - - @Override - public boolean forceNirik() { - return getTextures().getPosture().getActiveSkinType() == MineLPHDSkins.nirikSkinType; + public Identifier getForm() { + if (getTextures().getPosture().getActiveSkinType() == MineLPHDSkins.seaponySkinType) { + return PonyForm.SEAPONY; + } + if (getTextures().getPosture().getActiveSkinType() == MineLPHDSkins.nirikSkinType) { + return PonyForm.NIRIK; + } + return PonyForm.DEFAULT; } } diff --git a/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java b/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java index 312649cb..71eb5b5f 100644 --- a/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java +++ b/src/main/java/com/minelittlepony/client/render/PonyRenderDispatcher.java @@ -2,7 +2,9 @@ package com.minelittlepony.client.render; import java.util.function.Function; +import com.google.common.base.Predicates; import com.minelittlepony.api.model.PonyModel; +import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.api.pony.*; import com.minelittlepony.client.mixin.MixinEntityRenderers; import com.minelittlepony.client.render.entity.*; @@ -18,7 +20,6 @@ import net.minecraft.client.util.SkinTextures; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; -import net.minecraft.util.Identifier; /** * Render manager responsible for replacing and restoring entity renderers when the client settings change. @@ -26,6 +27,17 @@ import net.minecraft.util.Identifier; public class PonyRenderDispatcher { private LevitatingItemRenderer magicRenderer = new LevitatingItemRenderer(); + public PonyRenderDispatcher() { + PonyForm.register(PonyForm.DEFAULT, Predicates.alwaysTrue(), PlayerPonyRenderer::new); + PonyForm.register(PonyForm.SEAPONY, PonyPosture::hasSeaponyForm, (context, slimArms) -> new AquaticPlayerPonyRenderer(context, slimArms, DefaultPonySkinHelper.SEAPONY_SKIN_TYPE_ID, entity -> { + if (entity instanceof PreviewModel preview) { + return preview.getForm() == PonyForm.SEAPONY; + } + return PonyPosture.hasSeaponyForm(entity) && PonyPosture.isPartiallySubmerged(entity); + })); + PonyForm.register(PonyForm.NIRIK, PonyPosture::hasNirikForm, (context, slimArms) -> new FormChangingPlayerPonyRenderer(context, slimArms, DefaultPonySkinHelper.NIRIK_SKIN_TYPE_ID, PonyPosture::hasNirikForm)); + } + public LevitatingItemRenderer getMagicRenderer() { return magicRenderer; } @@ -34,42 +46,20 @@ public class PonyRenderDispatcher { * Registers all new player skin types. (currently only pony and slimpony). */ public void initialise(EntityRenderDispatcher manager, boolean force) { - for (SkinTextures.Model armShape : SkinTextures.Model.values()) { - addPlayerRenderer(armShape); - } + PonyForm.REGISTRY.values().forEach(form -> { + for (SkinTextures.Model armShape : SkinTextures.Model.values()) { + Mson.getInstance().getEntityRendererRegistry().registerPlayerRenderer( + form.id().withSuffixedPath("/" + armShape.getName()), + player -> !Pony.getManager().getPony(player).race().isHuman() + && player.getSkinTextures().model() == armShape + && form.shouldApply().test(player) && PonyForm.of(player) == form, + context -> form.factory().create(context, armShape == SkinTextures.Model.SLIM) + ); + } + }); MobRenderers.REGISTRY.values().forEach(i -> i.apply(this, force)); } - private void addPlayerRenderer(SkinTextures.Model armShape) { - Mson.getInstance().getEntityRendererRegistry().registerPlayerRenderer( - new Identifier("minelittlepony", "sea/" + armShape.getName()), - player -> { - return !Pony.getManager().getPony(player).race().isHuman() - && PonyPosture.hasSeaponyForm(player) - && player.getSkinTextures().model() == armShape; - }, - context -> new AquaticPlayerPonyRenderer(context, armShape == SkinTextures.Model.SLIM) - ); - Mson.getInstance().getEntityRendererRegistry().registerPlayerRenderer( - new Identifier("minelittlepony", "nirik/" + armShape.getName()), - player -> { - return !Pony.getManager().getPony(player).race().isHuman() - && PonyPosture.hasNirikForm(player) - && player.getSkinTextures().model() == armShape; - }, - context -> new FormChangingPlayerPonyRenderer(context, armShape == SkinTextures.Model.SLIM, DefaultPonySkinHelper.NIRIK_SKIN_TYPE_ID, PonyPosture::isNirikModifier) - ); - Mson.getInstance().getEntityRendererRegistry().registerPlayerRenderer( - new Identifier("minelittlepony", "land/" + armShape.getName()), - player -> { - return !Pony.getManager().getPony(player).race().isHuman() - && !PonyPosture.hasSeaponyForm(player) && !PonyPosture.hasNirikForm(player) - && player.getSkinTextures().model() == armShape; - }, - context -> new PlayerPonyRenderer(context, armShape == SkinTextures.Model.SLIM) - ); - } - /** * * Replaces an entity renderer depending on whether we want ponies or not. @@ -80,25 +70,17 @@ public class PonyRenderDispatcher { * @param The entity type */ void switchRenderer(MobRenderers state, EntityType type, Function> factory) { - Mson.getInstance().getEntityRendererRegistry().registerEntityRenderer(type, ctx -> { - if (!state.get()) { - return MixinEntityRenderers.getRendererFactories().get(type).create(ctx); - } - return factory.apply(ctx); - }); + Mson.getInstance().getEntityRendererRegistry().registerEntityRenderer(type, ctx -> state.get() + ? factory.apply(ctx) + : MixinEntityRenderers.getRendererFactories().get(type).create(ctx) + ); } @SuppressWarnings("unchecked") @Nullable public & PonyModel> PonyRenderContext getPonyRenderer(@Nullable T entity) { - if (entity == null) { - return null; - } - - EntityRenderer renderer = MinecraftClient.getInstance().getEntityRenderDispatcher().getRenderer(entity); - - if (renderer instanceof PonyRenderContext) { - return (PonyRenderContext) renderer; + if (entity != null && MinecraftClient.getInstance().getEntityRenderDispatcher().getRenderer(entity) instanceof PonyRenderContext c) { + return c; } return null; diff --git a/src/main/java/com/minelittlepony/client/render/entity/AquaticPlayerPonyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/AquaticPlayerPonyRenderer.java index a36e028b..e1a64ce4 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/AquaticPlayerPonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/AquaticPlayerPonyRenderer.java @@ -5,16 +5,19 @@ import com.minelittlepony.api.pony.*; import com.minelittlepony.api.pony.meta.Race; import com.minelittlepony.util.MathUtil; +import java.util.function.Predicate; + import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.EntityRendererFactory; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.particle.ParticleTypes; +import net.minecraft.util.Identifier; public class AquaticPlayerPonyRenderer extends FormChangingPlayerPonyRenderer { - public AquaticPlayerPonyRenderer(EntityRendererFactory.Context context, boolean slim) { - super(context, slim, DefaultPonySkinHelper.SEAPONY_SKIN_TYPE_ID, PonyPosture::isSeaponyModifier); + public AquaticPlayerPonyRenderer(EntityRendererFactory.Context context, boolean slim, Identifier alternateFormSkinId, Predicate formModifierPredicate) { + super(context, slim, alternateFormSkinId, formModifierPredicate); } @Override @@ -32,12 +35,12 @@ public class AquaticPlayerPonyRenderer extends FormChangingPlayerPonyRenderer { @Override protected Race getPlayerRace(AbstractClientPlayerEntity entity, Pony pony) { Race race = super.getPlayerRace(entity, pony); - return PonyPosture.isSeaponyModifier(entity) ? Race.SEAPONY : race == Race.SEAPONY ? Race.UNICORN : race; + return transformed ? Race.SEAPONY : race == Race.SEAPONY ? Race.UNICORN : race; } @Override protected void setupTransforms(AbstractClientPlayerEntity player, MatrixStack matrices, float animationProgress, float bodyYaw, float tickDelta, float scale) { - if (PonyPosture.isSeaponyModifier(player)) { + if (transformed) { matrices.translate(0, 0.6 * scale, 0); if (player.isInSneakingPose()) { matrices.translate(0, 0.125 * scale, 0); diff --git a/src/main/java/com/minelittlepony/client/render/entity/FormChangingPlayerPonyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/FormChangingPlayerPonyRenderer.java index da571585..7cc8b815 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/FormChangingPlayerPonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/FormChangingPlayerPonyRenderer.java @@ -1,14 +1,12 @@ package com.minelittlepony.client.render.entity; +import com.minelittlepony.api.model.ModelAttributes; import com.minelittlepony.api.pony.*; import java.util.function.Predicate; import net.minecraft.client.network.AbstractClientPlayerEntity; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.Arm; import net.minecraft.util.Identifier; public class FormChangingPlayerPonyRenderer extends PlayerPonyRenderer { @@ -33,14 +31,8 @@ public class FormChangingPlayerPonyRenderer extends PlayerPonyRenderer { } @Override - public void render(AbstractClientPlayerEntity player, float entityYaw, float tickDelta, MatrixStack stack, VertexConsumerProvider renderContext, int light) { - super.render(player, entityYaw, tickDelta, stack, renderContext, light); - updateForm(player); - } - - @Override - protected void renderArm(MatrixStack stack, VertexConsumerProvider renderContext, int lightUv, AbstractClientPlayerEntity player, Arm side) { - super.renderArm(stack, renderContext, lightUv, player, side); + protected final void preRender(AbstractClientPlayerEntity player, ModelAttributes.Mode mode) { + super.preRender(player, mode); updateForm(player); } diff --git a/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java index 5c2e3c1e..7e6a4c41 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java @@ -75,10 +75,14 @@ public class PlayerPonyRenderer extends PlayerEntityRenderer implements PonyRend super.scale(entity, stack, tickDelta); } + protected void preRender(AbstractClientPlayerEntity player, ModelAttributes.Mode mode) { + manager.preRender(player, mode); + } + @Override public void render(AbstractClientPlayerEntity entity, float entityYaw, float tickDelta, MatrixStack stack, VertexConsumerProvider renderContext, int lightUv) { // EntityModelFeatures: We have to force it to use our models otherwise EMF overrides it and breaks pony rendering - manager.preRender(entity, ModelAttributes.Mode.THIRD_PERSON); + preRender(entity, ModelAttributes.Mode.THIRD_PERSON); shadowRadius = manager.getShadowSize(); super.render(entity, entityYaw, tickDelta, stack, renderContext, lightUv); DebugBoundingBoxRenderer.render(getEntityPony(entity), this, entity, stack, renderContext, tickDelta); @@ -143,7 +147,7 @@ public class PlayerPonyRenderer extends PlayerEntityRenderer implements PonyRend } protected void renderArm(MatrixStack stack, VertexConsumerProvider renderContext, int lightUv, AbstractClientPlayerEntity player, Arm side) { - manager.preRender(player, ModelAttributes.Mode.FIRST_PERSON); + preRender(player, ModelAttributes.Mode.FIRST_PERSON); stack.push(); float reflect = side == Arm.LEFT ? 1 : -1; diff --git a/src/main/resources/assets/minelittlepony/lang/af_za.json b/src/main/resources/assets/minelittlepony/lang/af_za.json index 60658677..17a6a4e3 100644 --- a/src/main/resources/assets/minelittlepony/lang/af_za.json +++ b/src/main/resources/assets/minelittlepony/lang/af_za.json @@ -50,7 +50,7 @@ "minelp.debug.size": "Grootte ignoreer", "minelp.debug.race": "Ras oorheersing", "minelp.debug.armour": "Deaktiveer geponifiseerde pantserteksture", - "skin_type.minelp.seapony": "Seeponie", + "skin_type.minelittlepony.seapony": "Seeponie", "skin_type.minelittlepony.crown": "Kroon", "skin_type.minelittlepony.muffin": "Muffin hoed", "skin_type.minelittlepony.hat": "Hekshoed", diff --git a/src/main/resources/assets/minelittlepony/lang/de_de.json b/src/main/resources/assets/minelittlepony/lang/de_de.json index 1c86ee41..91bdeacc 100644 --- a/src/main/resources/assets/minelittlepony/lang/de_de.json +++ b/src/main/resources/assets/minelittlepony/lang/de_de.json @@ -51,7 +51,7 @@ "minelp.debug.size": "Überschreibe Größe", "minelp.debug.race": "Überschreibe Spezies", "minelp.debug.armour": "Ponifizierte Rüstungsständer deaktivieren", - "skin_type.minelp.seapony": "Seepony", + "skin_type.minelittlepony.seapony": "Seepony", "skin_type.minelittlepony.crown": "Krone", "skin_type.minelittlepony.muffin": "Muffin-Mütze", "skin_type.minelittlepony.hat": "Hexen Hut", diff --git a/src/main/resources/assets/minelittlepony/lang/en_gb.json b/src/main/resources/assets/minelittlepony/lang/en_gb.json index e841d636..9ff63f0c 100644 --- a/src/main/resources/assets/minelittlepony/lang/en_gb.json +++ b/src/main/resources/assets/minelittlepony/lang/en_gb.json @@ -50,7 +50,7 @@ "minelp.debug.size": "Size Override", "minelp.debug.race": "Race Override", "minelp.debug.armour": "Disable ponified armour textures", - "skin_type.minelp.seapony": "Seapony", + "skin_type.minelittlepony.seapony": "Seapony", "skin_type.minelittlepony.crown": "Crown", "skin_type.minelittlepony.muffin": "Muffin Hat", "skin_type.minelittlepony.hat": "Witch's Hat", diff --git a/src/main/resources/assets/minelittlepony/lang/en_pt.json b/src/main/resources/assets/minelittlepony/lang/en_pt.json index a8a08586..39a5b035 100644 --- a/src/main/resources/assets/minelittlepony/lang/en_pt.json +++ b/src/main/resources/assets/minelittlepony/lang/en_pt.json @@ -51,7 +51,7 @@ "minelp.debug.size": "Bow Width", "minelp.debug.race": "Sail Height", "minelp.debug.armour": "Batten down the hatches", - "skin_type.minelp.seapony": "Maremaid", + "skin_type.minelittlepony.seapony": "Maremaid", "skin_type.minelittlepony.crown": "Captain's Tricorne", "skin_type.minelittlepony.muffin": "Galley-man's Headwear", "skin_type.minelittlepony.hat": "Olde Hag's Gown", diff --git a/src/main/resources/assets/minelittlepony/lang/en_ud.json b/src/main/resources/assets/minelittlepony/lang/en_ud.json index 3714266c..148e64f6 100644 --- a/src/main/resources/assets/minelittlepony/lang/en_ud.json +++ b/src/main/resources/assets/minelittlepony/lang/en_ud.json @@ -50,7 +50,7 @@ "minelp.debug.size": "ǝpᴉɹɹǝʌO ǝzᴉS", "minelp.debug.race": "ǝpᴉɹɹǝʌO ǝɔɐᴚ", "minelp.debug.armour": "sǝɹnʇxǝʇ ɹnoɯɹɐ pǝᴉɟᴉuod ǝlqɐsᴉD", - "skin_type.minelp.seapony": "ʎuodɐǝS", + "skin_type.minelittlepony.seapony": "ʎuodɐǝS", "skin_type.minelittlepony.crown": "uʍoɹƆ", "skin_type.minelittlepony.muffin": "ʇɐH uᴉɟɟnW", "skin_type.minelittlepony.hat": "ʇɐH ɥɔʇᴉM", diff --git a/src/main/resources/assets/minelittlepony/lang/en_us.json b/src/main/resources/assets/minelittlepony/lang/en_us.json index ada3bd8a..384b1449 100644 --- a/src/main/resources/assets/minelittlepony/lang/en_us.json +++ b/src/main/resources/assets/minelittlepony/lang/en_us.json @@ -54,8 +54,8 @@ "minelp.debug.race": "Race Override", "minelp.debug.armour": "Disable ponified armour textures", - "skin_type.minelp.seapony": "Seapony Form", - "skin_type.minelp.nirik": "Kirin Nirik Form", + "skin_type.minelittlepony.seapony": "Seapony Form", + "skin_type.minelittlepony.nirik": "Kirin Nirik Form", "skin_type.minelittlepony.crown": "Crown", "skin_type.minelittlepony.muffin": "Muffin Hat", "skin_type.minelittlepony.hat": "Witch Hat", diff --git a/src/main/resources/assets/minelittlepony/lang/enus_enp.json b/src/main/resources/assets/minelittlepony/lang/enus_enp.json index 3d4a7bcf..43268819 100644 --- a/src/main/resources/assets/minelittlepony/lang/enus_enp.json +++ b/src/main/resources/assets/minelittlepony/lang/enus_enp.json @@ -51,7 +51,7 @@ "minelp.debug.size": "Bulk Override", "minelp.debug.race": "Kind Override", "minelp.debug.armour": "Cripple horselingified armour skins", - "skin_type.minelp.seapony": "Seahorseling", + "skin_type.minelittlepony.seapony": "Seahorseling", "skin_type.minelittlepony.crown": "Kinehelm", "skin_type.minelittlepony.muffin": "Muffin Hat", "skin_type.minelittlepony.hat": "Witch Hat", diff --git a/src/main/resources/assets/minelittlepony/lang/lol_us.json b/src/main/resources/assets/minelittlepony/lang/lol_us.json index 2acfd36c..0a74092d 100644 --- a/src/main/resources/assets/minelittlepony/lang/lol_us.json +++ b/src/main/resources/assets/minelittlepony/lang/lol_us.json @@ -51,7 +51,7 @@ "minelp.debug.size": "Size Owewwide", "minelp.debug.race": "Waze Owewwide", "minelp.debug.armour": "Disabl ponifid armr texturez", - "skin_type.minelp.seapony": "Seeponeh", + "skin_type.minelittlepony.seapony": "Seeponeh", "skin_type.minelittlepony.crown": "Meown", "skin_type.minelittlepony.muffin": "Muffin Hat plz", "skin_type.minelittlepony.hat": "Crazy Kitteh Ownr Hat", diff --git a/src/main/resources/assets/minelittlepony/lang/ru_ru.json b/src/main/resources/assets/minelittlepony/lang/ru_ru.json index 16da8da0..944be9bc 100644 --- a/src/main/resources/assets/minelittlepony/lang/ru_ru.json +++ b/src/main/resources/assets/minelittlepony/lang/ru_ru.json @@ -50,7 +50,7 @@ "minelp.debug.size": "Переопределение размера", "minelp.debug.race": "Переопределение расы", "minelp.debug.armour": "Отключить понифицированную броню", - "skin_type.minelp.seapony": "Морской пони", + "skin_type.minelittlepony.seapony": "Морской пони", "skin_type.minelittlepony.crown": "Корона", "skin_type.minelittlepony.muffin": "Маффин", "skin_type.minelittlepony.hat": "Шляпа Ведьмы", diff --git a/src/main/resources/assets/minelittlepony/lang/sr_rs.json b/src/main/resources/assets/minelittlepony/lang/sr_rs.json index 9f9f40e3..736803d5 100644 --- a/src/main/resources/assets/minelittlepony/lang/sr_rs.json +++ b/src/main/resources/assets/minelittlepony/lang/sr_rs.json @@ -52,7 +52,7 @@ "minelp.debug.race": "Nadjačavanje vrste", "minelp.debug.armour": "Onemogući ponified oklop tekstura", - "skin_type.minelp.seapony": "Vodeni Poni", + "skin_type.minelittlepony.seapony": "Vodeni Poni", "skin_type.minelittlepony.crown": "Kruna", "skin_type.minelittlepony.muffin": "Mafin Šešir", "skin_type.minelittlepony.hat": "Veštičiji Šešir", diff --git a/src/main/resources/assets/minelittlepony/lang/zh_cn.json b/src/main/resources/assets/minelittlepony/lang/zh_cn.json index e8a51c85..44473d56 100644 --- a/src/main/resources/assets/minelittlepony/lang/zh_cn.json +++ b/src/main/resources/assets/minelittlepony/lang/zh_cn.json @@ -53,8 +53,8 @@ "minelp.debug.race": "覆盖种族", "minelp.debug.armour": "停用小马化护甲纹理", - "skin_type.minelp.seapony": "海马形态", - "skin_type.minelp.nirik": "麒麟 逆麟形态", + "skin_type.minelittlepony.seapony": "海马形态", + "skin_type.minelittlepony.nirik": "麒麟 逆麟形态", "skin_type.minelittlepony.crown": "头冠", "skin_type.minelittlepony.muffin": "马芬帽", "skin_type.minelittlepony.hat": "女巫帽", diff --git a/src/main/resources/assets/minelp/textures/gui/skin_type/nirik.png b/src/main/resources/assets/minelittlepony/textures/gui/skin_type/nirik.png similarity index 100% rename from src/main/resources/assets/minelp/textures/gui/skin_type/nirik.png rename to src/main/resources/assets/minelittlepony/textures/gui/skin_type/nirik.png diff --git a/src/main/resources/assets/minelp/textures/gui/skin_type/seapony.png b/src/main/resources/assets/minelittlepony/textures/gui/skin_type/seapony.png similarity index 100% rename from src/main/resources/assets/minelp/textures/gui/skin_type/seapony.png rename to src/main/resources/assets/minelittlepony/textures/gui/skin_type/seapony.png