From aab7f780316a4d375b3383259ac6368d577dca09 Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 10 Dec 2022 16:45:38 +0000 Subject: [PATCH] New default skins --- gradle.properties | 2 +- skins | 2 +- .../minelittlepony/api/model/IPegasus.java | 6 ++ .../api/pony/DefaultPonySkinHelper.java | 20 +++++ .../minelittlepony/api/pony/IPonyManager.java | 24 +----- .../api/pony/meta/TriggerPixel.java | 10 +++ .../api/pony/meta/Wearable.java | 20 +++-- .../com/minelittlepony/client/SkinsProxy.java | 2 +- .../client/hdskins/PonyPreview.java | 11 ++- ...rSkin.java => MixinDefaultSkinHelper.java} | 23 +++--- ...nderer.java => MixinHeldItemRenderer.java} | 2 +- .../client/model/ModelType.java | 2 +- .../client/model/gear/SaddleBags.java | 15 +++- .../client/model/part/PegasusWings.java | 6 +- .../client/pony/BackgroundPonyList.java | 51 ------------ .../client/pony/NativePonyData.java | 4 +- .../minelittlepony/client/pony/PonyData.java | 4 +- .../client/pony/PonyManager.java | 73 ++++++++---------- .../client/pony/VariatedTextureSupplier.java | 49 ++++++++++-- .../client/render/EquineRenderManager.java | 4 + .../client/render/entity/AllayRenderer.java | 3 +- .../render/entity/PlayerPonyRenderer.java | 4 +- .../client/render/entity/StriderRenderer.java | 3 +- .../client/render/entity/VexRenderer.java | 3 +- .../entity/npc/AbstractNpcRenderer.java | 4 +- .../minelittlepony/settings/PonyConfig.java | 2 +- .../models/components/pegasus_wings.json | 18 ++--- .../textures/entity/alex_pony.png | Bin 1841 -> 0 bytes .../textures/entity/player/slim/alex_pony.png | Bin 0 -> 6389 bytes .../textures/entity/player/slim/ari_pony.png | Bin 0 -> 5177 bytes .../textures/entity/player/slim/efe_pony.png | Bin 0 -> 6471 bytes .../textures/entity/player/slim/kai_pony.png | Bin 0 -> 5382 bytes .../entity/player/slim/makena_pony.png | Bin 0 -> 5657 bytes .../textures/entity/player/slim/noor_pony.png | Bin 0 -> 5429 bytes .../entity/player/slim/steve_pony.png | Bin 0 -> 7786 bytes .../entity/player/slim/sunny_pony.png | Bin 0 -> 7218 bytes .../textures/entity/player/slim/zuri_pony.png | Bin 0 -> 6107 bytes .../textures/entity/player/wide/alex_pony.png | Bin 0 -> 1411 bytes .../textures/entity/player/wide/ari_pony.png | Bin 0 -> 1091 bytes .../textures/entity/player/wide/efe_pony.png | Bin 0 -> 1392 bytes .../textures/entity/player/wide/kai_pony.png | Bin 0 -> 1100 bytes .../entity/player/wide/makena_pony.png | Bin 0 -> 1321 bytes .../textures/entity/player/wide/noor_pony.png | Bin 0 -> 1171 bytes .../entity/{ => player/wide}/steve_pony.png | Bin .../entity/player/wide/sunny_pony.png | Bin 0 -> 7051 bytes .../textures/entity/player/wide/zuri_pony.png | Bin 0 -> 1367 bytes src/main/resources/minelp.mixin.json | 4 +- 47 files changed, 190 insertions(+), 181 deletions(-) create mode 100644 src/main/java/com/minelittlepony/api/pony/DefaultPonySkinHelper.java rename src/main/java/com/minelittlepony/client/mixin/{MixinDefaultPlayerSkin.java => MixinDefaultSkinHelper.java} (63%) rename src/main/java/com/minelittlepony/client/mixin/{MixinFirstPersonRenderer.java => MixinHeldItemRenderer.java} (98%) delete mode 100644 src/main/java/com/minelittlepony/client/pony/BackgroundPonyList.java delete mode 100644 src/main/resources/assets/minelittlepony/textures/entity/alex_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/slim/alex_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/slim/ari_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/slim/efe_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/slim/kai_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/slim/makena_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/slim/noor_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/slim/steve_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/slim/sunny_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/slim/zuri_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/wide/alex_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/wide/ari_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/wide/efe_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/wide/kai_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/wide/makena_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/wide/noor_pony.png rename src/main/resources/assets/minelittlepony/textures/entity/{ => player/wide}/steve_pony.png (100%) create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/wide/sunny_pony.png create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/player/wide/zuri_pony.png diff --git a/gradle.properties b/gradle.properties index 23445d66..9e5c3b33 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,5 +22,5 @@ org.gradle.daemon=false # Dependencies modmenu_version=5.0.0-alpha.3 kirin_version=1.13.0-beta.3 - hd_skins_version=6.7.0-beta.2 + hd_skins_version=6.7.0-beta.3 mson_version=1.7.0-beta.1 diff --git a/skins b/skins index 203739b1..33af7293 160000 --- a/skins +++ b/skins @@ -1 +1 @@ -Subproject commit 203739b11aa6ab379e59b65bf4b320ab3d04755a +Subproject commit 33af729369727ca03bf3883eda578dd5b2ced219 diff --git a/src/main/java/com/minelittlepony/api/model/IPegasus.java b/src/main/java/com/minelittlepony/api/model/IPegasus.java index 85998628..453044c2 100644 --- a/src/main/java/com/minelittlepony/api/model/IPegasus.java +++ b/src/main/java/com/minelittlepony/api/model/IPegasus.java @@ -1,5 +1,6 @@ package com.minelittlepony.api.model; +import com.minelittlepony.api.pony.meta.Wearable; import com.minelittlepony.client.MineLittlePony; public interface IPegasus extends IModel { @@ -12,6 +13,11 @@ 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); + } + /** * Gets the wings of this pegasus/flying creature */ diff --git a/src/main/java/com/minelittlepony/api/pony/DefaultPonySkinHelper.java b/src/main/java/com/minelittlepony/api/pony/DefaultPonySkinHelper.java new file mode 100644 index 00000000..bdd4b331 --- /dev/null +++ b/src/main/java/com/minelittlepony/api/pony/DefaultPonySkinHelper.java @@ -0,0 +1,20 @@ +package com.minelittlepony.api.pony; + +import net.minecraft.util.Identifier; + +import java.util.HashMap; +import java.util.Map; + +public final class DefaultPonySkinHelper { + public static final Identifier STEVE = new Identifier("minelittlepony", "textures/entity/player/wide/steve_pony.png"); + + private static final Map SKINS = new HashMap<>(); + + public static Identifier getPonySkin(Identifier original) { + return SKINS.computeIfAbsent(original, DefaultPonySkinHelper::computePonySkin); + } + + private static Identifier computePonySkin(Identifier original) { + return new Identifier("minelittlepony", original.getPath().replace(".png", "_pony.png")); + } +} diff --git a/src/main/java/com/minelittlepony/api/pony/IPonyManager.java b/src/main/java/com/minelittlepony/api/pony/IPonyManager.java index b3e18854..1d0e8b7e 100644 --- a/src/main/java/com/minelittlepony/api/pony/IPonyManager.java +++ b/src/main/java/com/minelittlepony/api/pony/IPonyManager.java @@ -14,10 +14,6 @@ import java.util.UUID; * */ public interface IPonyManager { - - Identifier STEVE = new Identifier("minelittlepony", "textures/entity/steve_pony.png"); - Identifier ALEX = new Identifier("minelittlepony", "textures/entity/alex_pony.png"); - /** * Gets a pony representation of the passed in entity. * @@ -48,17 +44,10 @@ public interface IPonyManager { * Delegates to the background-ponies registry if no pony skins were available and client settings allows it. * * @param resource A texture resource - * @param uuid id of a player or entity + * @param uuid id of a player */ IPony getPony(Identifier resource, UUID uuid); - /** - * Gets the default pony. Either STEVE/ALEX, or a background pony based on client settings. - * - * @param uuid id of a player or entity - */ - IPony getDefaultPony(UUID uuid); - /** * Gets a random background pony determined by the given uuid. * @@ -73,16 +62,5 @@ public interface IPonyManager { */ void removePony(Identifier resource); - static Identifier getDefaultSkin(UUID uuid) { - return isSlimSkin(uuid) ? ALEX : STEVE; - } - - /** - * Returns true if the given uuid is of a player would would use the ALEX skin type. - */ - static boolean isSlimSkin(UUID uuid) { - return (uuid.hashCode() & 1) == 1; - } - interface ForcedPony {} } diff --git a/src/main/java/com/minelittlepony/api/pony/meta/TriggerPixel.java b/src/main/java/com/minelittlepony/api/pony/meta/TriggerPixel.java index a263e23b..42c27c70 100644 --- a/src/main/java/com/minelittlepony/api/pony/meta/TriggerPixel.java +++ b/src/main/java/com/minelittlepony/api/pony/meta/TriggerPixel.java @@ -7,6 +7,8 @@ import com.minelittlepony.api.pony.TriggerPixelType; import com.minelittlepony.api.pony.TriggerPixelValue; import com.minelittlepony.common.util.Color; +import java.util.Arrays; + /** * Individual trigger pixels for a pony skin. * @@ -27,6 +29,10 @@ public enum TriggerPixel { TriggerPixelType def; + private static final TriggerPixel[] VALUES = values(); + private static final int MAX_READ_X = Arrays.stream(VALUES).mapToInt(i -> i.x).max().getAsInt(); + private static final int MAX_READ_Y = Arrays.stream(VALUES).mapToInt(i -> i.y).max().getAsInt(); + TriggerPixel(TriggerPixelType def, Channel channel, int x, int y) { this.def = def; this.channel = channel; @@ -81,6 +87,10 @@ public enum TriggerPixel { out[value.ordinal()] |= value != def; } + public static boolean isTriggerPixelCoord(int x, int y) { + return x <= MAX_READ_X && y <= MAX_READ_Y; + } + enum Channel { RAW (0xFFFFFFFF, 0), ALL (0x00FFFFFF, 0), diff --git a/src/main/java/com/minelittlepony/api/pony/meta/Wearable.java b/src/main/java/com/minelittlepony/api/pony/meta/Wearable.java index 71286cf0..46d89aff 100644 --- a/src/main/java/com/minelittlepony/api/pony/meta/Wearable.java +++ b/src/main/java/com/minelittlepony/api/pony/meta/Wearable.java @@ -7,13 +7,15 @@ import java.util.ArrayList; import java.util.List; public enum Wearable implements TriggerPixelType { - NONE (0x00), - CROWN (0x16), - MUFFIN (0x32), - HAT (0x64), - ANTLERS (0x96), - SADDLE_BAGS (0xC8), - STETSON (0xFA); + NONE (0x00), + CROWN (0x16), + MUFFIN (0x32), + HAT (0x64), + ANTLERS (0x96), + SADDLE_BAGS_LEFT (0xC6), + SADDLE_BAGS_RIGHT (0xC7), + SADDLE_BAGS_BOTH (0xC8), + STETSON (0xFA); private int triggerValue; @@ -26,6 +28,10 @@ public enum Wearable implements TriggerPixelType { return triggerValue; } + public boolean isSaddlebags() { + return this == SADDLE_BAGS_BOTH || this == SADDLE_BAGS_LEFT || this == SADDLE_BAGS_RIGHT; + } + @Override public int getChannelAdjustedColorCode() { return triggerValue == 0 ? 0 : Color.argbToHex(255, triggerValue, triggerValue, triggerValue); diff --git a/src/main/java/com/minelittlepony/client/SkinsProxy.java b/src/main/java/com/minelittlepony/client/SkinsProxy.java index dcdfee4c..4b7df9d9 100644 --- a/src/main/java/com/minelittlepony/client/SkinsProxy.java +++ b/src/main/java/com/minelittlepony/client/SkinsProxy.java @@ -42,7 +42,7 @@ public class SkinsProxy { } public Identifier getSeaponySkin(EquineRenderManager> manager, AbstractClientPlayerEntity player) { - return manager.getPony(player).texture(); + return manager.getTexture(player); } } diff --git a/src/main/java/com/minelittlepony/client/hdskins/PonyPreview.java b/src/main/java/com/minelittlepony/client/hdskins/PonyPreview.java index 89951e04..7df40774 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/PonyPreview.java +++ b/src/main/java/com/minelittlepony/client/hdskins/PonyPreview.java @@ -13,6 +13,7 @@ import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.common.client.gui.dimension.Bounds; import com.minelittlepony.hdskins.client.dummy.*; import com.minelittlepony.hdskins.profile.SkinType; +import com.minelittlepony.settings.PonyLevel; import java.util.List; import java.util.Optional; @@ -30,15 +31,17 @@ class PonyPreview extends PlayerPreview { } @Override - public Identifier getBlankSkin(SkinType type, boolean slim) { - if (type == SkinType.SKIN) { - return slim ? NO_SKIN_ALEX_PONY : NO_SKIN_STEVE_PONY; + public Identifier getDefaultSkin(SkinType type, boolean slim) { + if (MineLittlePony.getInstance().getConfig().ponyLevel.get() == PonyLevel.PONIES) { + if (type == SkinType.SKIN) { + return slim ? NO_SKIN_ALEX_PONY : NO_SKIN_STEVE_PONY; + } } if (type == MineLPHDSkins.seaponySkinType) { return NO_SKIN_SEAPONY; } - return super.getBlankSkin(type, slim); + return super.getDefaultSkin(type, slim); } @Override diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinDefaultPlayerSkin.java b/src/main/java/com/minelittlepony/client/mixin/MixinDefaultSkinHelper.java similarity index 63% rename from src/main/java/com/minelittlepony/client/mixin/MixinDefaultPlayerSkin.java rename to src/main/java/com/minelittlepony/client/mixin/MixinDefaultSkinHelper.java index d8f2db22..f440cb67 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinDefaultPlayerSkin.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinDefaultSkinHelper.java @@ -1,6 +1,6 @@ package com.minelittlepony.client.mixin; -import com.minelittlepony.api.pony.IPonyManager; +import com.minelittlepony.api.pony.DefaultPonySkinHelper; import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.settings.PonyLevel; @@ -14,35 +14,34 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.UUID; @Mixin(DefaultSkinHelper.class) -abstract class MixinDefaultPlayerSkin { +abstract class MixinDefaultSkinHelper { @Inject(method = "getTexture()Lnet/minecraft/util/Identifier;", at = @At("HEAD"), cancellable = true) - private static void legacySkin(CallbackInfoReturnable cir) { + private static void onGetTexture(CallbackInfoReturnable cir) { if (MineLittlePony.getInstance().getConfig().ponyLevel.get() == PonyLevel.PONIES) { - cir.setReturnValue(IPonyManager.STEVE); + cir.setReturnValue(DefaultPonySkinHelper.getPonySkin(cir.getReturnValue())); } } @Inject(method = "getTexture(Ljava/util/UUID;)Lnet/minecraft/util/Identifier;", - at = @At("HEAD"), + at = @At("RETURN"), cancellable = true) - private static void defaultSkin(UUID uuid, CallbackInfoReturnable cir) { + private static void onGetTexture(UUID uuid, CallbackInfoReturnable cir) { if (MineLittlePony.getInstance().getConfig().ponyLevel.get() == PonyLevel.PONIES) { - cir.setReturnValue(IPonyManager.getDefaultSkin(uuid)); + cir.setReturnValue(DefaultPonySkinHelper.getPonySkin(cir.getReturnValue())); } } @Inject(method = "getModel(Ljava/util/UUID;)Ljava/lang/String;", - at = @At("HEAD"), + at = @At("RETURN"), cancellable = true) - private static void skinType(UUID uuid, CallbackInfoReturnable cir) { + private static void onGetModel(UUID uuid, CallbackInfoReturnable cir) { if (MineLittlePony.getInstance().getConfig().ponyLevel.get() == PonyLevel.PONIES) { - cir.setReturnValue(MineLittlePony.getInstance().getManager() - .getPony(IPonyManager.getDefaultSkin(uuid), uuid) + .getPony(DefaultSkinHelper.getTexture(uuid), uuid) .race() - .getModelId(IPonyManager.isSlimSkin(uuid))); + .getModelId("slim".equalsIgnoreCase(cir.getReturnValue()))); } } } diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinFirstPersonRenderer.java b/src/main/java/com/minelittlepony/client/mixin/MixinHeldItemRenderer.java similarity index 98% rename from src/main/java/com/minelittlepony/client/mixin/MixinFirstPersonRenderer.java rename to src/main/java/com/minelittlepony/client/mixin/MixinHeldItemRenderer.java index ba05ccf8..df509dd5 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinFirstPersonRenderer.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinHeldItemRenderer.java @@ -18,7 +18,7 @@ import net.minecraft.world.World; import net.minecraft.client.render.item.ItemRenderer; @Mixin(HeldItemRenderer.class) -abstract class MixinFirstPersonRenderer { +abstract class MixinHeldItemRenderer { private static final String LivingEntity = "Lnet/minecraft/entity/LivingEntity;"; private static final String MatrixStack = "Lnet/minecraft/client/util/math/MatrixStack;"; private static final String ItemStack = "Lnet/minecraft/item/ItemStack;"; diff --git a/src/main/java/com/minelittlepony/client/model/ModelType.java b/src/main/java/com/minelittlepony/client/model/ModelType.java index e2828f97..e4106d42 100644 --- a/src/main/java/com/minelittlepony/client/model/ModelType.java +++ b/src/main/java/com/minelittlepony/client/model/ModelType.java @@ -56,7 +56,7 @@ public final class ModelType { public static final ModelKey> ARMOUR_OUTER = register("armour_outer", PonyArmourModel::new); public static final ModelKey STETSON = registerGear("stetson", Wearable.STETSON, Stetson::new); - public static final ModelKey SADDLEBAGS = registerGear("saddlebags", Wearable.SADDLE_BAGS, SaddleBags::new); + public static final ModelKey SADDLEBAGS = registerGear("saddlebags", Wearable.SADDLE_BAGS_BOTH, SaddleBags::new); public static final ModelKey CROWN = registerGear("crown", Wearable.CROWN, Crown::new); public static final ModelKey MUFFIN = registerGear("muffin", Wearable.MUFFIN, Muffin::new); public static final ModelKey WITCH_HAT = registerGear("witch_hat", Wearable.HAT, WitchHat::new); diff --git a/src/main/java/com/minelittlepony/client/model/gear/SaddleBags.java b/src/main/java/com/minelittlepony/client/model/gear/SaddleBags.java index e39e690a..0a11a4ad 100644 --- a/src/main/java/com/minelittlepony/client/model/gear/SaddleBags.java +++ b/src/main/java/com/minelittlepony/client/model/gear/SaddleBags.java @@ -60,6 +60,9 @@ public class SaddleBags extends AbstractGear implements PonyModelConstants { leftBag.roll = bodySwing; rightBag.roll = -bodySwing; + leftBag.visible = model.isWearing(Wearable.SADDLE_BAGS_BOTH) || model.isWearing(Wearable.SADDLE_BAGS_LEFT); + rightBag.visible = model.isWearing(Wearable.SADDLE_BAGS_BOTH) || model.isWearing(Wearable.SADDLE_BAGS_RIGHT); + dropAmount = hangLow ? 0.15F : 0; dropAmount = model.getMetadata().getInterpolator(interpolatorId).interpolate("dropAmount", dropAmount, 3); } @@ -73,16 +76,22 @@ public class SaddleBags extends AbstractGear implements PonyModelConstants { stack.push(); stack.translate(0, dropAmount, 0); + if (!rightBag.visible || !leftBag.visible) { + stack.translate(0, 0.3F, -0.3F); + } + leftBag.render(stack, renderContext, overlayUv, lightUv, red, green, blue, alpha); rightBag.render(stack, renderContext, overlayUv, lightUv, red, green, blue, alpha); stack.pop(); - strap.render(stack, renderContext, overlayUv, lightUv, red, green, blue, alpha); + if (leftBag.visible && rightBag.visible) { + strap.render(stack, renderContext, overlayUv, lightUv, red, green, blue, alpha); + } } @Override public boolean canRender(IModel model, Entity entity) { - return model.isWearing(Wearable.SADDLE_BAGS); + return model.isWearing(Wearable.SADDLE_BAGS_BOTH) || model.isWearing(Wearable.SADDLE_BAGS_LEFT) || model.isWearing(Wearable.SADDLE_BAGS_RIGHT); } @Override @@ -92,6 +101,6 @@ public class SaddleBags extends AbstractGear implements PonyModelConstants { @Override public Identifier getTexture(T entity, Context context) { - return context.getDefaultTexture(entity, Wearable.SADDLE_BAGS); + return context.getDefaultTexture(entity, Wearable.SADDLE_BAGS_BOTH); } } diff --git a/src/main/java/com/minelittlepony/client/model/part/PegasusWings.java b/src/main/java/com/minelittlepony/client/model/part/PegasusWings.java index 7f91fc7c..b3cd692c 100644 --- a/src/main/java/com/minelittlepony/client/model/part/PegasusWings.java +++ b/src/main/java/com/minelittlepony/client/model/part/PegasusWings.java @@ -40,7 +40,7 @@ public class PegasusWings implements IPart, MsonMode } public Wing getRight() { - return pegasus.isWearing(Wearable.SADDLE_BAGS) ? legacyWing : rightWing; + return pegasus.isBurdened() ? legacyWing : rightWing; } @Override @@ -66,7 +66,7 @@ public class PegasusWings implements IPart, MsonMode if (pegasus.wingsAreOpen()) { flapAngle = pegasus.getWingRotationFactor(ticks); - if (!pegasus.getAttributes().isCrouching && pegasus.isWearing(Wearable.SADDLE_BAGS)) { + if (!pegasus.getAttributes().isCrouching && pegasus.isBurdened()) { flapAngle -= 1F; } } else { @@ -118,7 +118,7 @@ public class PegasusWings implements IPart, MsonMode if (pegasus.wingsAreOpen()) { extended.render(stack, vertices, overlayUv, lightUv, red, green, blue, alpha); } else { - boolean bags = pegasus.isWearing(Wearable.SADDLE_BAGS); + boolean bags = pegasus.isWearing(Wearable.SADDLE_BAGS_BOTH); if (bags) { stack.push(); stack.translate(0, 0, 0.198F); diff --git a/src/main/java/com/minelittlepony/client/pony/BackgroundPonyList.java b/src/main/java/com/minelittlepony/client/pony/BackgroundPonyList.java deleted file mode 100644 index 93d7ec35..00000000 --- a/src/main/java/com/minelittlepony/client/pony/BackgroundPonyList.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.minelittlepony.client.pony; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.resource.ResourceManager; -import net.minecraft.util.Identifier; - -import com.minelittlepony.api.pony.IPonyManager; -import com.minelittlepony.client.MineLittlePony; -import com.minelittlepony.util.MathUtil; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -/** - * All currently loaded background ponies. - */ -class BackgroundPonyList { - /** - * All currently loaded background ponies. - */ - private final List backgroundPonyList = new ArrayList<>(); - - private final Identifier id; - - public BackgroundPonyList(Identifier id) { - this.id = id; - reloadAll(MinecraftClient.getInstance().getResourceManager()); - } - - public Identifier getId(UUID uuid) { - if (backgroundPonyList.isEmpty() || isUser(uuid)) { - return IPonyManager.getDefaultSkin(uuid); - } - - int bgi = MathUtil.mod(uuid.hashCode(), backgroundPonyList.size()); - - return backgroundPonyList.get(bgi); - } - - public void reloadAll(ResourceManager resourceManager) { - backgroundPonyList.clear(); - backgroundPonyList.addAll(resourceManager.findResources(id.getPath(), path -> path.getPath().endsWith(".png")).keySet()); - MineLittlePony.logger.info("Detected {} ponies installed at {}.", backgroundPonyList.size(), id); - } - - static boolean isUser(UUID uuid) { - return MinecraftClient.getInstance().player != null - && MinecraftClient.getInstance().player.getUuid().equals(uuid); - } -} diff --git a/src/main/java/com/minelittlepony/client/pony/NativePonyData.java b/src/main/java/com/minelittlepony/client/pony/NativePonyData.java index a4ed0498..27c9ec35 100644 --- a/src/main/java/com/minelittlepony/client/pony/NativePonyData.java +++ b/src/main/java/com/minelittlepony/client/pony/NativePonyData.java @@ -57,7 +57,7 @@ class NativePonyData implements IPonyData { @Override public Race getRace() { - return race.getValue(); + return PonyConfig.getEffectiveRace(race.getValue()); } @Override @@ -92,7 +92,7 @@ class NativePonyData implements IPonyData { @Override public boolean hasHorn() { - return getRace() != null && PonyConfig.getEffectiveRace(getRace()).hasHorn(); + return getRace().hasHorn(); } @Override diff --git a/src/main/java/com/minelittlepony/client/pony/PonyData.java b/src/main/java/com/minelittlepony/client/pony/PonyData.java index 036f1ea3..224ad9d1 100644 --- a/src/main/java/com/minelittlepony/client/pony/PonyData.java +++ b/src/main/java/com/minelittlepony/client/pony/PonyData.java @@ -99,7 +99,7 @@ public class PonyData implements IPonyData { @Override public Race getRace() { - return race; + return PonyConfig.getEffectiveRace(race); } @Override @@ -134,7 +134,7 @@ public class PonyData implements IPonyData { @Override public boolean hasHorn() { - return getRace() != null && PonyConfig.getEffectiveRace(getRace()).hasHorn(); + return getRace().hasHorn(); } @Override diff --git a/src/main/java/com/minelittlepony/client/pony/PonyManager.java b/src/main/java/com/minelittlepony/client/pony/PonyManager.java index 9533e827..e3bec42d 100644 --- a/src/main/java/com/minelittlepony/client/pony/PonyManager.java +++ b/src/main/java/com/minelittlepony/client/pony/PonyManager.java @@ -4,7 +4,6 @@ import com.google.common.cache.*; import com.minelittlepony.api.pony.IPony; import com.minelittlepony.api.pony.IPonyManager; import com.minelittlepony.client.MineLittlePony; -import com.minelittlepony.client.render.IPonyRenderContext; import com.minelittlepony.client.render.PonyRenderDispatcher; import com.minelittlepony.client.render.blockentity.skull.PonySkullRenderer; import com.minelittlepony.settings.PonyConfig; @@ -30,7 +29,6 @@ import java.util.concurrent.TimeUnit; * */ public class PonyManager implements IPonyManager, SimpleSynchronousResourceReloadListener { - private static final Identifier ID = new Identifier("minelittlepony", "background_ponies"); public static final Identifier BACKGROUND_PONIES = new Identifier("minelittlepony", "textures/entity/pony"); @@ -48,22 +46,6 @@ public class PonyManager implements IPonyManager, SimpleSynchronousResourceReloa this.config = config; } - @Override - public Optional getPony(@Nullable Entity entity) { - if (entity instanceof PlayerEntity player) { - return Optional.of(getPony(player)); - } - - if (entity instanceof LivingEntity living) { - IPonyRenderContext dispatcher = PonyRenderDispatcher.getInstance().getPonyRenderer(living); - if (dispatcher != null) { - return Optional.of(dispatcher.getEntityPony(living)); - } - } - - return Optional.empty(); - } - @Override public IPony getPony(Identifier resource) { try { @@ -74,16 +56,29 @@ public class PonyManager implements IPonyManager, SimpleSynchronousResourceReloa } @Override - public IPony getPony(PlayerEntity player) { - if (player.getGameProfile() == null) { - return getDefaultPony(player.getUuid()); + public Optional getPony(@Nullable Entity entity) { + if (entity instanceof PlayerEntity player) { + return Optional.of(getPony(player)); } + if (entity instanceof LivingEntity living) { + return Optional.ofNullable(PonyRenderDispatcher.getInstance().getPonyRenderer(living)).map(d -> d.getEntityPony(living)); + } + + return Optional.empty(); + } + + @Override + public IPony getPony(PlayerEntity player) { Identifier skin = getSkin(player); - UUID uuid = player.getGameProfile().getId(); + UUID uuid = player.getGameProfile() == null ? player.getUuid() : player.getGameProfile().getId(); if (skin == null) { - return getDefaultPony(uuid); + if (config.ponyLevel.get() == PonyLevel.PONIES) { + return getBackgroundPony(uuid); + } + + return getAsDefaulted(getPony(DefaultSkinHelper.getTexture(uuid))); } if (player instanceof IPonyManager.ForcedPony) { @@ -93,15 +88,6 @@ public class PonyManager implements IPonyManager, SimpleSynchronousResourceReloa return getPony(skin, uuid); } - @Nullable - private Identifier getSkin(PlayerEntity player) { - if (player instanceof AbstractClientPlayerEntity) { - return ((AbstractClientPlayerEntity)player).getSkinTexture(); - } - - return null; - } - @Override public IPony getPony(Identifier resource, UUID uuid) { IPony pony = getPony(resource); @@ -113,6 +99,11 @@ public class PonyManager implements IPonyManager, SimpleSynchronousResourceReloa return pony; } + @Override + public IPony getBackgroundPony(UUID uuid) { + return getAsDefaulted(getPony(MineLittlePony.getInstance().getVariatedTextures().get(BACKGROUND_PONIES, uuid).orElse(DefaultSkinHelper.getTexture(uuid)))); + } + private IPony getAsDefaulted(IPony pony) { try { return defaultedPoniesCache.get(pony.texture(), () -> new Pony(pony.texture(), ((Pony)pony).memoizedData(), true)); @@ -121,18 +112,16 @@ public class PonyManager implements IPonyManager, SimpleSynchronousResourceReloa } } - @Override - public IPony getDefaultPony(UUID uuid) { - if (config.ponyLevel.get() != PonyLevel.PONIES) { - return getAsDefaulted(getPony(DefaultSkinHelper.getTexture(uuid))); + @Nullable + private Identifier getSkin(PlayerEntity player) { + if (player.getGameProfile() == null) { + return null; + } + if (player instanceof AbstractClientPlayerEntity) { + return ((AbstractClientPlayerEntity)player).getSkinTexture(); } - return getBackgroundPony(uuid); - } - - @Override - public IPony getBackgroundPony(UUID uuid) { - return getAsDefaulted(getPony(MineLittlePony.getInstance().getVariatedTextures().get(BACKGROUND_PONIES, uuid))); + return null; } @Override diff --git a/src/main/java/com/minelittlepony/client/pony/VariatedTextureSupplier.java b/src/main/java/com/minelittlepony/client/pony/VariatedTextureSupplier.java index 620ccc2e..13333679 100644 --- a/src/main/java/com/minelittlepony/client/pony/VariatedTextureSupplier.java +++ b/src/main/java/com/minelittlepony/client/pony/VariatedTextureSupplier.java @@ -1,18 +1,20 @@ package com.minelittlepony.client.pony; import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener; +import net.minecraft.client.MinecraftClient; import net.minecraft.entity.Entity; import net.minecraft.resource.ResourceManager; import net.minecraft.util.Identifier; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; +import com.minelittlepony.client.MineLittlePony; +import com.minelittlepony.util.MathUtil; + +import java.util.*; public class VariatedTextureSupplier implements SimpleSynchronousResourceReloadListener { private static final Identifier ID = new Identifier("minelittlepony", "variated_textures"); - private final Map entries = new HashMap<>(); + private final Map entries = new HashMap<>(); @Override public void reload(ResourceManager manager) { @@ -24,15 +26,46 @@ public class VariatedTextureSupplier implements SimpleSynchronousResourceReloadL return ID; } - private BackgroundPonyList get(Identifier id) { - return entries.computeIfAbsent(id, BackgroundPonyList::new); + private SkinList get(Identifier id) { + return entries.computeIfAbsent(id, SkinList::new); } - public Identifier get(Identifier poolId, UUID seed) { + public Optional get(Identifier poolId, UUID seed) { return get(poolId).getId(seed); } - public Identifier get(Identifier poolId, Entity entity) { + public Optional get(Identifier poolId, Entity entity) { return get(poolId, entity.getUuid()); } + + private static class SkinList { + private final List textures = new ArrayList<>(); + + private final Identifier id; + + public SkinList(Identifier id) { + this.id = id; + reloadAll(MinecraftClient.getInstance().getResourceManager()); + } + + public Optional getId(UUID uuid) { + if (textures.isEmpty() || isUser(uuid)) { + return Optional.empty(); + } + + return Optional.ofNullable(textures.get(MathUtil.mod(uuid.hashCode(), textures.size()))); + } + + public void reloadAll(ResourceManager resourceManager) { + textures.clear(); + textures.addAll(resourceManager.findResources(id.getPath(), path -> path.getPath().endsWith(".png")).keySet()); + MineLittlePony.logger.info("Detected {} ponies installed at {}.", textures.size(), id); + } + + static boolean isUser(UUID uuid) { + return MinecraftClient.getInstance().player != null + && MinecraftClient.getInstance().player.getUuid().equals(uuid); + } + } + } diff --git a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java index 1a390c48..27267921 100644 --- a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java +++ b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java @@ -185,6 +185,10 @@ public class EquineRenderManager boolean special = PonyTextures.isBestPony(entity); - if (wearable == Wearable.SADDLE_BAGS) { + if (wearable.isSaddlebags()) { VillagerProfession profession = entity.getVillagerData().getProfession(); return !special && profession != VillagerProfession.NONE && ( profession == VillagerProfession.CARTOGRAPHER @@ -75,7 +75,7 @@ abstract class AbstractNpcRenderer @Override public Identifier getDefaultTexture(T villager, Wearable wearable) { - if (wearable == Wearable.SADDLE_BAGS) { + if (wearable.isSaddlebags()) { return clothing.createTexture(villager, "accessory"); } return getTexture(villager); diff --git a/src/main/java/com/minelittlepony/settings/PonyConfig.java b/src/main/java/com/minelittlepony/settings/PonyConfig.java index b4fce360..b680e9ba 100644 --- a/src/main/java/com/minelittlepony/settings/PonyConfig.java +++ b/src/main/java/com/minelittlepony/settings/PonyConfig.java @@ -99,7 +99,7 @@ public class PonyConfig extends Config { * Gets the actual race determined by the given pony level. * PonyLevel.HUMANS would force all races to be humans. * PonyLevel.BOTH is no change. - * PonyLevel.PONIES (should) return a pony if this is a human. Don't be fooled, though. It doesn't. + * PonyLevel.PONIES no change. */ public static Race getEffectiveRace(Race race) { 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 e9c03407..cf01bbb9 100644 --- a/src/main/resources/assets/minelittlepony/models/components/pegasus_wings.json +++ b/src/main/resources/assets/minelittlepony/models/components/pegasus_wings.json @@ -10,9 +10,9 @@ "pivot": [0, 13, -2], "rotate": [90, 0, 0], "cubes": [ - {"from": [4, 5, 2], "size": [2, 6, 2] }, - {"from": [4, 5, 4], "size": [2, 8, 2] }, - {"from": [4, 5, 6], "size": [2, 6, 2] } + {"from": [4.1, 5, 1.999], "size": [2, 6, 2] }, + {"from": [4.1, 5, 4.001], "size": [2, 8, 2] }, + {"from": [4.1, 5, 6.002], "size": [2, 6, 2] } ] }, "extended": { @@ -40,9 +40,9 @@ "pivot": [0, 13, -2], "rotate": [90, 0, 0], "cubes": [ - {"from": [-6, 5, 2], "size": [2, 6, 2] }, - {"from": [-6, 5, 4], "size": [2, 8, 2] }, - {"from": [-6, 5, 6], "size": [2, 6, 2] } + {"from": [-6.001, 5, 1.999], "size": [2, 6, 2] }, + {"from": [-6.001, 5, 4.001], "size": [2, 8, 2] }, + {"from": [-6.001, 5, 6.002], "size": [2, 6, 2] } ] }, "extended": { @@ -70,9 +70,9 @@ "pivot": [0, 13, -2], "rotate": [90, 0, 0], "cubes": [ - {"from": [-6, 5, 2], "size": [2, 6, 2] }, - {"from": [-6, 5, 4], "size": [2, 8, 2] }, - {"from": [-6, 5, 6], "size": [2, 6, 2] } + {"from": [-6.001, 5, 1.999], "size": [2, 6, 2] }, + {"from": [-6.001, 5, 4.001], "size": [2, 8, 2] }, + {"from": [-6.001, 5, 6.002], "size": [2, 6, 2] } ] }, "extended": { diff --git a/src/main/resources/assets/minelittlepony/textures/entity/alex_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/alex_pony.png deleted file mode 100644 index 9afa16d956bbf4596084de19fda5bd835e69dd1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1841 zcmV-12hRA3P)HQJ3V5>w@2$)(+YAuL1HEpCx34ZiL zgCtm5+JaPnh!v$NQYt7kPz5PbB-ofcLiG9(DN(POySqJxYHdNRhSm&xoHul=4jp!a5 z1_11_eH~YC7J4xmiJjNjL`(&Ouv$b~|L%K->G`e?--aLv=-q#emW^CK&L#W(-CakN zWc5WQB_$kjo>;&igi)sLOE4GH^FH4W>TEb11^`$sF%SUIq%nRmX6fIZ=goe=P+o5t&5Cl5=1QeDD08nNEthPlN{r(T4E_Hdo$OAJLg z;18nDw*!K?7$s#d<%SaJpe`97yF%P2+Nw33^>%j1{efBd4DY+Z2|z)ttz2q{YS54#Q-vE zOY5rP_IP#ao^IYx`Xha@OTg{%QU$^h|H2^~_e&IBOy2GjV=w z{0;!1wq~(mAZQt&UDv5Vu+=oit$n?|w8BX0(+1#~(x+ADemP{Q@VPx+O#D4gzuTXy z$*4WsHc|f>~B++YZHH}I%B4g^WVUEW5qN{Ip9Z!)JvV$UN4#x zKj6><#%MMa8BPDzmL@vOa=;HxmJ>P;0KrgV5lvQ?spE;*U>E=-rzZ^P?6#vr>c!sD zFVVHX8Wnbj>KbB?r$==i4Tb`EJUwd6V=o;MOe+dxI`b_30pP870#9^dMjuX|I;Ubn zIOKdC4xnI6n42b z;OxK!0HDWQ8QCNuAh6D}8z@GMkIUo;{k8jVsmkmUdXyw+)#YXjUKFKo6-_VE+Y;35)Ga0BV<#z{ zWk8ldG$PYfm^Vq_wGR{6&TY0zRh?P1vQKLadmxg@&ChJcx580NZ-jW0grTA9^oEE- z9+^QV z2N2<7nUHr3ARrJuFgy&lwfE3HI`Wh_)&9Ma?F&($0Khy0Af5gDT((bToDpkYTbAk# zGV*G^5$y|0pa4JtfC2yo015!iGXQ4$et}W#=L7(Dzux8Ap!+&ZF5AyJ09!V#kK3x& zz7CVi_H&jAYX7WYvsJ<@TCudQ8iRvBCv3;Qxt&e>Y%S}Tq_lhV#M~Zl!arb!f>ZF} f>a5!vd4KR90c_*Ba8QK@00000NkvXXu0mjf7w1}h diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/slim/alex_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/slim/alex_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..25e965143f1f9f68037a3b1713d5d95991d669a4 GIT binary patch literal 6389 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 DVuLC| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/slim/ari_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/slim/ari_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..92cc59f98766b8e9b8fdb0b65fb8dbf94a714ce1 GIT binary patch literal 5177 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/slim/efe_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/slim/efe_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3c6791bc4bfe1f10c0c4dc417ab90930d939e5 GIT binary patch literal 6471 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/slim/kai_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/slim/kai_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..eea3307f5022e10d40fa5c4b48a6986b493859be GIT binary patch literal 5382 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/slim/makena_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/slim/makena_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8847421678b6926ef8ae5696ee8745565c0dec GIT binary patch literal 5657 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/slim/sunny_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/slim/sunny_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..b9918a80a1c25d52af40d8f57054d5b38780d77e GIT binary patch literal 7218 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 AT>t<8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/slim/zuri_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/slim/zuri_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..bf02194f8d3b1bc61d02e19d387f865efcff9489 GIT binary patch literal 6107 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/wide/alex_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/wide/alex_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..d861b6c900cd744fa25623c710783f622d0a08d3 GIT binary patch literal 1411 zcmV-}1$_F6P)PZ1C3n+IQPUYgee7{ zpNElU@Yuy6B9Cii>S1wtG4=Mv!e_t128+uJNead(Ku1>MidBJ*5QLT@kfb1V z2EA(IDD!wcu-l`VuqDY zdgD$^HQm93LsP{e!0pF-Em)-hS?&N7sfPs-p`{3nECWdjsx}5z&i)GS006FicfBYi zNK!CP0kYg$dK$ub(m&>4jc?OWr z$;yb%1fcnvA?fz<6zhm1He<>F%$-BanGY(yU_RRhNeY7FD%R8wSX^GZr}{JiU|{4F zW?FX<04U3Jp}REh?&-vjGH?}nrTXm4PN#dxzsWe(Cy=K_uyr;|9c&jQuO#k006gi z4}-IR;_kuAst2Fw{6>~R&C_3FCW+K#87H>!$;zUPV=y?;fv_MdW}A@!0N8%G9=M8C znI?o_{>C5pwSfMhGw4xY*ON5(RCw*FPhfFID#Nz5uk{TAo zm8^57xZu}BK#kP|-z2Xbmnvi*NDN%hnQ-&i-c|mPwgl#8=P|v&VB41HG&H@y;N0tG zl5CwVOF7f}TTP@JpN#Lv7NZ>}vlurnE>fOdAE0L6-*$bZ&4 zktFuj7d61d%qO1DN&(Xg45k;Dr028k`4bxuHIZt3d9MZJEGHt@Y0&BR$4y1~?mK2P zzEppsG)Tqt0C~k1+ldteG9k%+i$*|L5aZVTVL>bj6D%45I)h#bT9kNI_w`Di0H@oJ zJ=Ld`pw+1VM~Z;3AYyQ$1I`8;ZXVl<-JMs8^4_5!eLybwGG^{~HrUW6yanB(+6bvl z$fhyDQpKhxfZgZ;iUJRVP@eLamDl*m!KCQD`M7<8LL%SsRc1&r*(_2|T=N{QF%iuJ zHiH5(ZTf1nz(xxU;KJ?ut9D$n{eB?d?+@l? z=kd|YPZF&JGy*gNGy*gNGy*gNGy*gNGy>LPEs*>h;%vVO&isBqm;2X({{a*isbJ36 RSKF|9RA+2;hzNEO$rx8MNKGKSzJ3>hYm>xQ`Zg!l6313(X~W_Jl4tV6ox^dEvugF z;$aj|Cfmv?)KaLfnW+N~6MF!F;-az>eM<7NkPiT`Jewd6S9Z^} z)ZeNkWbQigzL|hch@1YD~t z7CVM*@tl&Dj?c&{MPXvFYoy^|6s&?E!0B`X02*$z;Go5moM4AH8ABgExe?&V%XSuf zR6{^b6g6S87GPy%Mb^+(4bvedm5Q8NVr+$v0w7rlz^pGKKA%&|i`iKmpQ@5(qO^7t zQEAK@9R~ULfc|yF@amZ0(eDUeBpb%+POJo4o^omd9#+p&GeY6Ak#b z@&og2$+&G_@}kLE4@xNrA=sZXK3_0`5x<8r%b#f15rN%%nAn4K3~3G_`%@mx5O{s{ zF9t48gHnov>0X&IFGF2;x@ygeXz86#x+J8;PwPbhMDog2Bo^}Nhrn(7lcZ8a{(M4+ z*q75BaTEp_g-~-J?2X-`%SVFaC@w0K<&c!-E9soXpP9R8S{M;sd~0(90FGULVMKOq zAwp_xwNSEXkuT|-6x-H<0aRAiqOz(MYr%l#wfRQG@1e}%j^;j51a^9qdX#Pskb)7v z(%fR$Wc6}Drmn9%TBkZXYYMQnxq;~RE-qdu2LMF3cj12iUA1n&h@?7y@6;rlE5gR{ z)tVoJAPCy0L9>b;EFl#dPQ8XP3$uh+Syh`><)u)OmIp+)cM;v*Rc%iP6=5PSLAgMx z`K1Hh9H0hf^-M!Sx~0t~C!{mKcfZ?7-gAJOC$PGn8DK|#wZEncp!5JESA?AA03(sA z)OBW7fsCy`^b;7X6J5U$tZ(iLcp z6e97wtpZ$tLJI+DaU=b`_whYO)&{g{5Sh*o)D=GKA%+57vpfe^{%{ig-53I6W_m{Jzc^xeHt_vbVRgh$;czAs4k`+;n~KiJyb zK+U5sgogkZfD6C{-~w;~xBy%LE&vxG4`%`OZ-@g~ju|jbfPZRdI{U{)_HO_H002ov JPDHLkV1nR{{-po_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/wide/efe_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/wide/efe_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..36f32d49ae5705f08e2139d542ffde18e2073e6c GIT binary patch literal 1392 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 SqVmB20000l%eQ40Q0RB;^|xed>t zPqWAAQ40C=Yp&V%P4fPDHjR}yoI z=dohAE#cdNYjo!^r>7lCgjpDW@ec6{}h?!MNE2UzJD$+nidGBS0?ZQi^yEzyPC=iJgHt*AVfF&e;If;a~f^RQ`x|=kr3)mpazAKdl zl*C*u3$!@kwf=V<(8GELeUQpRU7*vWl*TR8sZ%NoO*4afeLcnnx_O=cUA>c}TM0H=gM&g7X`V~@mRn)F8i8+l0&^>8Y$!3<4 zm}~6<@7}z}kH0U05K<3bl$hra{=&VvyN0@eSzuj(Eu~$pEMVq-Z4t*Q&&hEdX6{D~ zcLSq@Z59XS3bzm|hC2^}v}RDJ&VI50Dl9d3*5o~dKE#S)tOt1r(i!gM-Zzf{EK>Vv zMDIj2pZgIsAhL*GPC_ooNcbz5Won4F35ec_Ahn;af9_|nnIV2T2>?iVEAV-SF%IKjp)q{@aR=LLn}!M6?0h`^i>-ouUWNMx5Ba>>8w-dP!+7Gqz-%e2 znf{n9xLm2iJy6p(yh&*lOB4$f|x@0)J$lbr~CYG^bwu#E+< zy}#boHZDMOzq&lO4FT$w*ge2QuGpXyR%@OLPRn7JT{N%m4{YZGdX``t0%%LDHx{!+ z3{bbkv=g*V3{Ve4=q$h%F2MS}-b}#h294fucjJJtzs;rg({25JZ`AruVS5X3+F>ic zq?_OGjaYAL4A|W`AdOnk>-OrMtdBjO;v5%n2yh5+2yh5+2yh5+2yh5+2XLEDM9G2UTl}Y00000NkvXXu0mjf!ANPx literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/wide/noor_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/wide/noor_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..8640be5f97c8f4163b599144259e31c65b0bbba6 GIT binary patch literal 1171 zcmV;E1Z?|>P)#t+yUR)cT@JdMQB{-xHq=#gvw~ zO`*AkQhaE8Xx$$6)S@4XNR6$7O=DtVJ9Rax2zYvkXBe$kKh};m3Z4gMWv^yD@6GqU z`DS)W`QA25=U*o{#_s-8h5+&L2VdZ*whl9!ff+T?a2zCT8x6-n$hwH{fBux@QU#W< zZO|5l88ra_v_(NnWvuQjlYadV;$wVw;XgQk{)?YJn@8x%`*?fyBg`k82pV4G0U(zu zFf*GGjkg#oKV;~QI`~|N@LJR=@X&;e4&b`BKoqrYx`T1lMd8;U9U7r1; z+Pb*P;m;$$%x2W2!0eT*`~^0PXB`6^7kN3-yk?(+lc%LJsPwxTH9-}OCDf#ckbk@e zs2cOhCiV|0c%;!%S6qB5A8D1?2o!G4p*RAV_@m@FoFn zB9|&K+M)=D4a8#!JO&VtB}9tQ5sBxmqDU{d*{<#^lTfdQ)A1O7*o}&-8}hyBc+9sD zt2@htdqKl-@Y>u}&=&2e3H(tM{VB%h-&Y6usqlKQaEbZ%T=W8AzW1QWbc6WiU7tK-uiF}>kmEwV+_0dPrL5@ z_3bSXLhxkoU?k$nsk5Tg<%JG6IX~ocsRDB^qwYGRZwhci*RNfFt`zAU10h7*8%Oe!`v$YGyOSL*yvv;L$4ryueosmByL3ieg6OS@&D-%TdLzynkM1ukI`pW7rO> z)e0_OPIrA)0bcIz9W(@aKT93oK=G7v8>yUDCyIb-wE_T2$#V~IJGbBP_u5&y$qy8u zNe{8PQOAWhX8-`38+BZpyGpz^8Of=$WYFd#ZxyjpTT~`qzwvRbt*!On3j|g0@LZoX z7$9b88u;MGvd52Zxv6M0DM!zMR+Nf zLBA0IX}1@Y2TVi+tkf2t*XGA*kg)BENP$2jV5PPwNYe?403+ysI0>X*XdQ5>m%&Md z!T0#1Lgm>&zcUC84Gj$q4Gj$q4Gj$q4Gj%dAgVj8Z*MXA*<7_+>3Dws-n(;Tob68v zeI|I?1qkF=eAH+6s@jj$1M1sbUGEnR`~HC6_Ya!%5HoL_CprbR09pVofEGXtpaswZ lXaTeUFJLb)&N@8^{0}zwm5&w9ZaM$}002ovPDHLkV1fcj8I=G4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minelittlepony/textures/entity/steve_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/wide/steve_pony.png similarity index 100% rename from src/main/resources/assets/minelittlepony/textures/entity/steve_pony.png rename to src/main/resources/assets/minelittlepony/textures/entity/player/wide/steve_pony.png diff --git a/src/main/resources/assets/minelittlepony/textures/entity/player/wide/sunny_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/player/wide/sunny_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..7ec15d83130df76040f5429a13d9e50e22e5a6ed GIT binary patch literal 7051 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 Ze*>~U!);vN;!ywq002ovPDHLkV1hAzg~$K^ literal 0 HcmV?d00001 diff --git a/src/main/resources/minelp.mixin.json b/src/main/resources/minelp.mixin.json index 80cd505c..d9a6f575 100644 --- a/src/main/resources/minelp.mixin.json +++ b/src/main/resources/minelp.mixin.json @@ -7,11 +7,11 @@ "client": [ "IResizeable", "MixinCamera", - "MixinDefaultPlayerSkin", + "MixinDefaultSkinHelper", "MixinEntityRenderDispatcher", "MixinEntityRenderers", "MixinSkullBlockEntityRenderer", - "MixinFirstPersonRenderer", + "MixinHeldItemRenderer", "MixinItemRenderer", "MixinTexturedRenderLayers", "MixinSpriteIdentifier",