From 4b842c9e9a6378aebb6c37ba3b2bcc2c99e0233b Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 26 Sep 2023 01:45:28 +0100 Subject: [PATCH] Further refactoring and consolidating --- .../network/fabric => events}/Channel.java | 19 +++++++----- .../{pony/network => events}/MsgPonyData.java | 2 +- .../fabric => events}/PonyDataCallback.java | 2 +- .../PonyModelPrepareCallback.java | 2 +- .../api/model/IModelWrapper.java | 10 ------- .../api/model/MobPosingHelper.java | 10 ++----- .../api/model/ModelAttributes.java | 3 +- .../api/model/ModelWithHooves.java | 14 +++++++++ .../{client => api}/model/ModelWrapper.java | 14 ++++----- .../minelittlepony/api/model/PonyModel.java | 2 +- .../model/PonyModelMixin.java} | 25 ++++++++++++---- .../{client => api/model}/PreviewModel.java | 2 +- .../api/model/{IPart.java => SubModel.java} | 2 +- .../api/model/WingedPonyModel.java | 6 ++-- .../api/model/armour/IArmourModel.java | 17 ----------- .../model/armour/IArmourTextureResolver.java | 30 ------------------- .../minelittlepony/api/model/gear/Gear.java | 7 +++-- .../minelittlepony/api/pony/PonyPosture.java | 2 +- .../minelittlepony/api/pony/meta/Sizes.java | 27 ++++------------- .../api/pony/meta/Wearable.java | 7 ++--- .../client/ClientPonyConfig.java | 7 ++--- .../com/minelittlepony/client/HorseCam.java | 5 ++-- .../minelittlepony/client/MineLittlePony.java | 10 +------ .../client/PonySettingsscreen.java | 3 +- .../com/minelittlepony/client/SkinsProxy.java | 14 --------- .../client/compat/hdskins/DummyPony.java | 2 +- .../client/mixin/MixinDefaultSkinHelper.java | 6 ++-- .../client/model/AbstractPonyModel.java | 10 +++---- .../client/model/ClientPonyModel.java | 12 ++++++-- .../client/model/ModelKeyImpl.java | 4 +-- .../client/model/PlayerModelKey.java | 1 + .../model/armour/ArmorModelRegistry.java | 3 +- .../model/armour/ArmourLayer.java | 2 +- ...solver.java => ArmourTextureResolver.java} | 9 ++---- .../model/armour/ArmourVariant.java | 3 +- .../client/model/armour/PonyArmourModel.java | 4 +-- .../model/entity/GuardianPonyModel.java | 5 ++-- .../model/entity/race/AlicornModel.java | 4 +-- .../model/entity/race/EarthPonyModel.java | 4 +-- .../model/entity/race/PegasusModel.java | 4 +-- .../model/entity/race/SeaponyModel.java | 2 +- .../model/entity/race/UnicornModel.java | 8 ++--- .../client/model/gear/SaddleBags.java | 4 --- .../client/model/part/LionTail.java | 4 +-- .../client/model/part/PonyEars.java | 4 +-- .../client/model/part/PonySnout.java | 8 ++--- .../client/model/part/PonyTail.java | 2 +- .../client/model/part/PonyWings.java | 2 +- .../client/model/part/SeaponyTail.java | 4 +-- .../client/model/part/UnicornHorn.java | 4 +-- .../render/DebugBoundingBoxRenderer.java | 1 - .../client/render/EquineRenderManager.java | 8 ++--- .../client/render/LevitatingItemRenderer.java | 4 +-- .../client/render/MobRenderers.java | 5 ++-- .../blockentity/skull/PonySkullRenderer.java | 5 ++-- .../entity/AquaticPlayerPonyRenderer.java | 2 +- .../render/entity/PlayerPonyRenderer.java | 1 + .../render/entity/PonyStandRenderer.java | 4 +-- .../entity/feature/AbstractPonyFeature.java | 2 +- .../render/entity/feature/ArmourFeature.java | 16 +++++----- .../render/entity/feature/GearFeature.java | 9 +----- .../entity/npc/AbstractNpcRenderer.java | 1 + 62 files changed, 168 insertions(+), 247 deletions(-) rename src/main/java/com/minelittlepony/api/{pony/network/fabric => events}/Channel.java (80%) rename src/main/java/com/minelittlepony/api/{pony/network => events}/MsgPonyData.java (98%) rename src/main/java/com/minelittlepony/api/{pony/network/fabric => events}/PonyDataCallback.java (95%) rename src/main/java/com/minelittlepony/api/{model/fabric => events}/PonyModelPrepareCallback.java (93%) delete mode 100644 src/main/java/com/minelittlepony/api/model/IModelWrapper.java create mode 100644 src/main/java/com/minelittlepony/api/model/ModelWithHooves.java rename src/main/java/com/minelittlepony/{client => api}/model/ModelWrapper.java (84%) rename src/main/java/com/minelittlepony/{client/model/IPonyMixinModel.java => api/model/PonyModelMixin.java} (80%) rename src/main/java/com/minelittlepony/{client => api/model}/PreviewModel.java (62%) rename src/main/java/com/minelittlepony/api/model/{IPart.java => SubModel.java} (96%) delete mode 100644 src/main/java/com/minelittlepony/api/model/armour/IArmourModel.java delete mode 100644 src/main/java/com/minelittlepony/api/model/armour/IArmourTextureResolver.java rename src/main/java/com/minelittlepony/{api => client}/model/armour/ArmorModelRegistry.java (89%) rename src/main/java/com/minelittlepony/{api => client}/model/armour/ArmourLayer.java (87%) rename src/main/java/com/minelittlepony/client/model/armour/{DefaultArmourTextureResolver.java => ArmourTextureResolver.java} (92%) rename src/main/java/com/minelittlepony/{api => client}/model/armour/ArmourVariant.java (88%) diff --git a/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java b/src/main/java/com/minelittlepony/api/events/Channel.java similarity index 80% rename from src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java rename to src/main/java/com/minelittlepony/api/events/Channel.java index bb1d650b..e885ab4d 100644 --- a/src/main/java/com/minelittlepony/api/pony/network/fabric/Channel.java +++ b/src/main/java/com/minelittlepony/api/events/Channel.java @@ -1,4 +1,4 @@ -package com.minelittlepony.api.pony.network.fabric; +package com.minelittlepony.api.events; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -11,25 +11,28 @@ import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; import net.minecraft.util.Identifier; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + import com.minelittlepony.api.pony.Pony; import com.minelittlepony.api.pony.PonyData; -import com.minelittlepony.api.pony.network.MsgPonyData; -import com.minelittlepony.client.MineLittlePony; @Environment(EnvType.CLIENT) public class Channel { private static final Identifier CLIENT_PONY_DATA = new Identifier("minelittlepony", "pony_data"); private static final Identifier REQUEST_PONY_DATA = new Identifier("minelittlepony", "request_pony_data"); + private static final Logger LOGGER = LogManager.getLogger("MineLittlePony"); + private static boolean registered; public static void bootstrap() { ClientLoginConnectionEvents.INIT.register((handler, client) -> { registered = false; - MineLittlePony.logger.info("Resetting registered flag"); + LOGGER.info("Resetting registered flag"); }); ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> { - MineLittlePony.logger.info("Sending consent packet to " + handler.getPlayer().getName().getString()); + LOGGER.info("Sending consent packet to " + handler.getPlayer().getName().getString()); sender.sendPacket(REQUEST_PONY_DATA, PacketByteBufs.empty()); }); @@ -38,7 +41,7 @@ public class Channel { if (client.player != null) { Pony pony = Pony.getManager().getPony(client.player); registered = true; - MineLittlePony.logger.info("Server has just consented"); + LOGGER.info("Server has just consented"); sender.sendPacket(CLIENT_PONY_DATA, MsgPonyData.write(pony.metadata(), PacketByteBufs.create())); } @@ -58,9 +61,9 @@ public class Channel { if (!registered) { if (MinecraftClient.getInstance().isInSingleplayer() || MinecraftClient.getInstance().isIntegratedServerRunning()) { - MineLittlePony.logger.info("Sending pony skin data over as we are either in single-player or lan"); + LOGGER.info("Sending pony skin data over as we are either in single-player or lan"); } else { - MineLittlePony.logger.info("Skipping network packet as the server has not consented"); + LOGGER.info("Skipping network packet as the server has not consented"); return; } } diff --git a/src/main/java/com/minelittlepony/api/pony/network/MsgPonyData.java b/src/main/java/com/minelittlepony/api/events/MsgPonyData.java similarity index 98% rename from src/main/java/com/minelittlepony/api/pony/network/MsgPonyData.java rename to src/main/java/com/minelittlepony/api/events/MsgPonyData.java index 6a9759ff..a48d12a8 100644 --- a/src/main/java/com/minelittlepony/api/pony/network/MsgPonyData.java +++ b/src/main/java/com/minelittlepony/api/events/MsgPonyData.java @@ -1,4 +1,4 @@ -package com.minelittlepony.api.pony.network; +package com.minelittlepony.api.events; import net.minecraft.network.PacketByteBuf; diff --git a/src/main/java/com/minelittlepony/api/pony/network/fabric/PonyDataCallback.java b/src/main/java/com/minelittlepony/api/events/PonyDataCallback.java similarity index 95% rename from src/main/java/com/minelittlepony/api/pony/network/fabric/PonyDataCallback.java rename to src/main/java/com/minelittlepony/api/events/PonyDataCallback.java index 4f6b2d7e..77a89929 100644 --- a/src/main/java/com/minelittlepony/api/pony/network/fabric/PonyDataCallback.java +++ b/src/main/java/com/minelittlepony/api/events/PonyDataCallback.java @@ -1,4 +1,4 @@ -package com.minelittlepony.api.pony.network.fabric; +package com.minelittlepony.api.events; import net.fabricmc.api.EnvType; import net.fabricmc.fabric.api.event.Event; diff --git a/src/main/java/com/minelittlepony/api/model/fabric/PonyModelPrepareCallback.java b/src/main/java/com/minelittlepony/api/events/PonyModelPrepareCallback.java similarity index 93% rename from src/main/java/com/minelittlepony/api/model/fabric/PonyModelPrepareCallback.java rename to src/main/java/com/minelittlepony/api/events/PonyModelPrepareCallback.java index 19f2811c..5e6f9a6b 100644 --- a/src/main/java/com/minelittlepony/api/model/fabric/PonyModelPrepareCallback.java +++ b/src/main/java/com/minelittlepony/api/events/PonyModelPrepareCallback.java @@ -1,4 +1,4 @@ -package com.minelittlepony.api.model.fabric; +package com.minelittlepony.api.events; import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.event.EventFactory; diff --git a/src/main/java/com/minelittlepony/api/model/IModelWrapper.java b/src/main/java/com/minelittlepony/api/model/IModelWrapper.java deleted file mode 100644 index 72b2bbdc..00000000 --- a/src/main/java/com/minelittlepony/api/model/IModelWrapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.minelittlepony.api.model; - -import com.minelittlepony.api.pony.PonyData; - -public interface IModelWrapper { - /** - * Updates metadata values to this wrapper's contained models. - */ - IModelWrapper applyMetadata(PonyData meta); -} diff --git a/src/main/java/com/minelittlepony/api/model/MobPosingHelper.java b/src/main/java/com/minelittlepony/api/model/MobPosingHelper.java index a8a226b8..791d0217 100644 --- a/src/main/java/com/minelittlepony/api/model/MobPosingHelper.java +++ b/src/main/java/com/minelittlepony/api/model/MobPosingHelper.java @@ -4,12 +4,8 @@ import net.minecraft.client.model.ModelPart; import net.minecraft.util.Arm; import net.minecraft.util.math.MathHelper; -import com.minelittlepony.client.model.ClientPonyModel; import com.minelittlepony.mson.util.PartUtil; -/** - * Common interface for all undead enemies. - */ public final class MobPosingHelper { /** * Rotates the provided arm to the correct orientation for holding an item. @@ -34,9 +30,9 @@ public final class MobPosingHelper { arm.roll = cos; } - public static void rotateUndeadArms(ClientPonyModel model, float move, float ticks) { - ModelPart leftArm = model.getArm(Arm.LEFT); - ModelPart rightArm = model.getArm(Arm.RIGHT); + public static void rotateUndeadArms(PonyModel model, float move, float ticks) { + ModelPart leftArm = model.getForeLeg(Arm.LEFT); + ModelPart rightArm = model.getForeLeg(Arm.RIGHT); if (islookAngleRight(move)) { rotateArmHolding(rightArm, 1, model.getSwingAmount(), ticks); diff --git a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java index 9a218e77..417ae803 100644 --- a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java +++ b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java @@ -1,5 +1,6 @@ package com.minelittlepony.api.model; +import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.api.pony.*; import com.minelittlepony.client.*; import com.minelittlepony.common.util.animation.Interpolator; @@ -156,7 +157,7 @@ public class ModelAttributes { interpolatorId = entity.getUuid(); } isLeftHanded = entity.getMainArm() == Arm.LEFT; - isHorsey = MineLittlePony.getInstance().getConfig().horsieMode.get(); + isHorsey = PonyConfig.getInstance().horsieMode.get(); featureSkins = SkinsProxy.instance.getAvailableSkins(entity); mainArm = entity.getMainArm(); activeHand = entity.getActiveHand(); diff --git a/src/main/java/com/minelittlepony/api/model/ModelWithHooves.java b/src/main/java/com/minelittlepony/api/model/ModelWithHooves.java new file mode 100644 index 00000000..1d9e9d6e --- /dev/null +++ b/src/main/java/com/minelittlepony/api/model/ModelWithHooves.java @@ -0,0 +1,14 @@ +package com.minelittlepony.api.model; + +import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.entity.model.ModelWithArms; +import net.minecraft.client.render.entity.model.BipedEntityModel.ArmPose; +import net.minecraft.util.Arm; + +public interface ModelWithHooves extends ModelWithArms { + ModelPart getForeLeg(Arm side); + + ModelPart getHindLeg(Arm side); + + ArmPose getArmPoseForSide(Arm side); +} diff --git a/src/main/java/com/minelittlepony/client/model/ModelWrapper.java b/src/main/java/com/minelittlepony/api/model/ModelWrapper.java similarity index 84% rename from src/main/java/com/minelittlepony/client/model/ModelWrapper.java rename to src/main/java/com/minelittlepony/api/model/ModelWrapper.java index 89362645..43460059 100644 --- a/src/main/java/com/minelittlepony/client/model/ModelWrapper.java +++ b/src/main/java/com/minelittlepony/api/model/ModelWrapper.java @@ -1,4 +1,4 @@ -package com.minelittlepony.client.model; +package com.minelittlepony.api.model; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ArmorItem; @@ -6,12 +6,11 @@ import net.minecraft.item.ItemStack; import org.jetbrains.annotations.Nullable; -import com.minelittlepony.api.model.PonyModel; -import com.minelittlepony.api.model.IModelWrapper; -import com.minelittlepony.api.model.armour.*; import com.minelittlepony.api.pony.PonyData; -import com.minelittlepony.client.model.armour.PonyArmourModel; -import com.minelittlepony.mson.api.*; +import com.minelittlepony.client.model.PlayerModelKey; +import com.minelittlepony.client.model.armour.*; +import com.minelittlepony.mson.api.ModelKey; +import com.minelittlepony.mson.api.MsonModel; import java.util.*; import java.util.function.Consumer; @@ -19,7 +18,7 @@ import java.util.function.Consumer; /** * Container class for the various models and their associated piece of armour. */ -public class ModelWrapper> implements IModelWrapper { +public class ModelWrapper> { @Nullable private final MsonModel.Factory> armorFactory; private final Map>, PonyArmourModel> armor = new HashMap<>(); @@ -50,7 +49,6 @@ public class ModelWrapper> implem })); } - @Override public ModelWrapper applyMetadata(PonyData meta) { body.setMetadata(meta); armor.values().forEach(a -> a.setMetadata(meta)); diff --git a/src/main/java/com/minelittlepony/api/model/PonyModel.java b/src/main/java/com/minelittlepony/api/model/PonyModel.java index 33a82749..6baca27f 100644 --- a/src/main/java/com/minelittlepony/api/model/PonyModel.java +++ b/src/main/java/com/minelittlepony/api/model/PonyModel.java @@ -12,7 +12,7 @@ import com.minelittlepony.api.pony.PonyData; import com.minelittlepony.api.pony.meta.*; import com.minelittlepony.mson.api.MsonModel; -public interface PonyModel extends MsonModel, ModelWithArms, ModelWithHat, ModelWithHead { +public interface PonyModel extends MsonModel, ModelWithHooves, ModelWithHat, ModelWithHead { void copyAttributes(BipedEntityModel other); diff --git a/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java b/src/main/java/com/minelittlepony/api/model/PonyModelMixin.java similarity index 80% rename from src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java rename to src/main/java/com/minelittlepony/api/model/PonyModelMixin.java index 17419629..a4582220 100644 --- a/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java +++ b/src/main/java/com/minelittlepony/api/model/PonyModelMixin.java @@ -1,21 +1,20 @@ -package com.minelittlepony.client.model; +package com.minelittlepony.api.model; import net.minecraft.client.model.ModelPart; import net.minecraft.client.render.entity.model.BipedEntityModel; import net.minecraft.client.render.entity.model.ModelWithArms; +import net.minecraft.client.render.entity.model.BipedEntityModel.ArmPose; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; import net.minecraft.util.Arm; -import com.minelittlepony.api.model.*; import com.minelittlepony.api.pony.Pony; import com.minelittlepony.api.pony.PonyData; import com.minelittlepony.api.pony.meta.Size; import com.minelittlepony.mson.api.ModelView; import com.minelittlepony.mson.api.model.BoxBuilder.RenderLayerSetter; -public interface IPonyMixinModel> extends PonyModel { - +public interface PonyModelMixin> extends PonyModel { M mixin(); @Override @@ -71,6 +70,22 @@ public interface IPonyMixinModel> return mixin().getRiderYOffset(); } + + @Override + default ModelPart getForeLeg(Arm side) { + return mixin().getForeLeg(side); + } + + @Override + default ModelPart getHindLeg(Arm side) { + return mixin().getHindLeg(side); + } + + @Override + default ArmPose getArmPoseForSide(Arm side) { + return mixin().getArmPoseForSide(side); + } + @Override default void setArmAngle(Arm arm, MatrixStack stack) { if (mixin() instanceof ModelWithArms) { @@ -93,7 +108,7 @@ public interface IPonyMixinModel> mixin().setHatVisible(hatVisible); } - interface Caster & HornedPonyModel, ArmModel> extends IPonyMixinModel, HornedPonyModel { + interface Caster & HornedPonyModel, ArmModel> extends PonyModelMixin, HornedPonyModel { @Override default boolean isCasting() { return mixin().isCasting(); diff --git a/src/main/java/com/minelittlepony/client/PreviewModel.java b/src/main/java/com/minelittlepony/api/model/PreviewModel.java similarity index 62% rename from src/main/java/com/minelittlepony/client/PreviewModel.java rename to src/main/java/com/minelittlepony/api/model/PreviewModel.java index 49cf38da..ef68773f 100644 --- a/src/main/java/com/minelittlepony/client/PreviewModel.java +++ b/src/main/java/com/minelittlepony/api/model/PreviewModel.java @@ -1,4 +1,4 @@ -package com.minelittlepony.client; +package com.minelittlepony.api.model; public interface PreviewModel { boolean forceSeapony(); diff --git a/src/main/java/com/minelittlepony/api/model/IPart.java b/src/main/java/com/minelittlepony/api/model/SubModel.java similarity index 96% rename from src/main/java/com/minelittlepony/api/model/IPart.java rename to src/main/java/com/minelittlepony/api/model/SubModel.java index 7e2239da..93089138 100644 --- a/src/main/java/com/minelittlepony/api/model/IPart.java +++ b/src/main/java/com/minelittlepony/api/model/SubModel.java @@ -3,7 +3,7 @@ package com.minelittlepony.api.model; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.util.math.MatrixStack; -public interface IPart { +public interface SubModel { /** * Sets the model's various rotation angles. */ diff --git a/src/main/java/com/minelittlepony/api/model/WingedPonyModel.java b/src/main/java/com/minelittlepony/api/model/WingedPonyModel.java index fe2fe2e8..4fdd0c82 100644 --- a/src/main/java/com/minelittlepony/api/model/WingedPonyModel.java +++ b/src/main/java/com/minelittlepony/api/model/WingedPonyModel.java @@ -2,8 +2,8 @@ package com.minelittlepony.api.model; import net.minecraft.entity.LivingEntity; +import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.api.pony.meta.Wearable; -import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.util.MathUtil; public interface WingedPonyModel extends PonyModel { @@ -16,7 +16,7 @@ public interface WingedPonyModel extends PonyModel { */ default boolean wingsAreOpen() { return (getAttributes().isSwimming || getAttributes().isFlying || getAttributes().isCrouching) - && (MineLittlePony.getInstance().getConfig().flappyElytras.get() || !getAttributes().isGliding); + && (PonyConfig.getInstance().flappyElytras.get() || !getAttributes().isGliding); } default boolean isBurdened() { @@ -28,7 +28,7 @@ public interface WingedPonyModel extends PonyModel { /** * Gets the wings of this pegasus/flying creature */ - IPart getWings(); + SubModel getWings(); /** * Determines angle used to animate wing flaps whilst flying/swimming. diff --git a/src/main/java/com/minelittlepony/api/model/armour/IArmourModel.java b/src/main/java/com/minelittlepony/api/model/armour/IArmourModel.java deleted file mode 100644 index 0dfec519..00000000 --- a/src/main/java/com/minelittlepony/api/model/armour/IArmourModel.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.minelittlepony.api.model.armour; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.entity.LivingEntity; - -import com.minelittlepony.api.model.PonyModel; - -public interface IArmourModel { - /** - * Called to synchronise this armour's angles with that of another. - * - * @param model The other model to mimic - */ - boolean poseModel(T entity, float limbAngle, float limbDistance, float age, float headYaw, float headPitch, - EquipmentSlot slot, ArmourLayer layer, - PonyModel mainModel); -} diff --git a/src/main/java/com/minelittlepony/api/model/armour/IArmourTextureResolver.java b/src/main/java/com/minelittlepony/api/model/armour/IArmourTextureResolver.java deleted file mode 100644 index 3f8416e6..00000000 --- a/src/main/java/com/minelittlepony/api/model/armour/IArmourTextureResolver.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.minelittlepony.api.model.armour; - -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Identifier; - -import org.jetbrains.annotations.Nullable; - -import com.minelittlepony.client.model.armour.DefaultArmourTextureResolver; - -/** - * A resolver for looking up the texture for a piece of armour. - *

- * This is for modders who want to override the default implementation found in {@link DefaultArmourTextureResolver}. - */ -public interface IArmourTextureResolver { - /** - * Gets the armour texture to be used for the given entity, armour piece, slot, and render layer. - */ - Identifier getTexture(LivingEntity entity, ItemStack itemstack, EquipmentSlot slot, ArmourLayer layer, @Nullable String type); - - /** - * Gets the armour variant for the identified texture. - * Either normal for pony-style textures, or legacy for other textures. - */ - default ArmourVariant getVariant(ArmourLayer layer, Identifier resolvedTexture) { - return ArmourVariant.NORMAL; - } -} diff --git a/src/main/java/com/minelittlepony/api/model/gear/Gear.java b/src/main/java/com/minelittlepony/api/model/gear/Gear.java index bd625ec4..841bce0a 100644 --- a/src/main/java/com/minelittlepony/api/model/gear/Gear.java +++ b/src/main/java/com/minelittlepony/api/model/gear/Gear.java @@ -9,22 +9,23 @@ import net.minecraft.util.Identifier; import com.minelittlepony.api.model.*; import com.minelittlepony.api.pony.meta.Wearable; -import com.minelittlepony.client.render.entity.feature.GearFeature; -import java.util.UUID; +import java.util.*; import java.util.function.Supplier; /** * Interface for an accessory on a pony's body. */ public interface Gear { + List> MOD_GEARS = new ArrayList<>(); + /** * Registers a custom gear to be used with the mod. *

* This would be awesome for creating socks. */ static Supplier register(Supplier gear) { - GearFeature.addModGear(gear); + MOD_GEARS.add(gear); return gear; } diff --git a/src/main/java/com/minelittlepony/api/pony/PonyPosture.java b/src/main/java/com/minelittlepony/api/pony/PonyPosture.java index 8247df46..7e70ad41 100644 --- a/src/main/java/com/minelittlepony/api/pony/PonyPosture.java +++ b/src/main/java/com/minelittlepony/api/pony/PonyPosture.java @@ -1,7 +1,7 @@ package com.minelittlepony.api.pony; import com.minelittlepony.api.pony.meta.Race; -import com.minelittlepony.client.PreviewModel; +import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.client.SkinsProxy; import com.minelittlepony.client.render.entity.AquaticPlayerPonyRenderer; diff --git a/src/main/java/com/minelittlepony/api/pony/meta/Sizes.java b/src/main/java/com/minelittlepony/api/pony/meta/Sizes.java index 99a666dd..fc3447c4 100644 --- a/src/main/java/com/minelittlepony/api/pony/meta/Sizes.java +++ b/src/main/java/com/minelittlepony/api/pony/meta/Sizes.java @@ -18,8 +18,6 @@ public enum Sizes implements Size { FOAL (0xffbe53, 0.25f, 0.6F, 0.5F), UNSET (0x000000, 1, 1, 1); - public static final Sizes[] REGISTRY = values(); - private int triggerValue; private float shadowSize; @@ -33,6 +31,11 @@ public enum Sizes implements Size { camera = cameraF; } + @Override + public int colorCode() { + return triggerValue; + } + @Override public float shadowSize() { return shadowSize * PonyConfig.getInstance().getGlobalScaleFactor(); @@ -53,25 +56,7 @@ public enum Sizes implements Size { @Override public float eyeDistanceFactor() { - if (!PonyConfig.getInstance().fillycam.get()) { - return 1; - } - return camera * PonyConfig.getInstance().getGlobalScaleFactor(); + return eyeHeightFactor(); } - @Override - public int colorCode() { - return triggerValue; - } - - public static Sizes of(Size size) { - if (size instanceof Sizes) { - return (Sizes)size; - } - int i = size.ordinal(); - if (i < 0 || i >= REGISTRY.length) { - return UNSET; - } - return REGISTRY[i]; - } } 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 093f30a8..e75a0847 100644 --- a/src/main/java/com/minelittlepony/api/pony/meta/Wearable.java +++ b/src/main/java/com/minelittlepony/api/pony/meta/Wearable.java @@ -2,7 +2,6 @@ package com.minelittlepony.api.pony.meta; import net.minecraft.util.Identifier; -import com.minelittlepony.client.model.gear.SaddleBags; import com.minelittlepony.common.util.Color; import java.util.*; @@ -15,9 +14,9 @@ public enum Wearable implements TriggerPixelType { MUFFIN (0x32, new Identifier("minelittlepony", "textures/models/muffin.png")), HAT (0x64, new Identifier("textures/entity/witch.png")), ANTLERS (0x96, new Identifier("minelittlepony", "textures/models/antlers.png")), - SADDLE_BAGS_LEFT (0xC6, SaddleBags.TEXTURE), - SADDLE_BAGS_RIGHT (0xC7, SaddleBags.TEXTURE), - SADDLE_BAGS_BOTH (0xC8, SaddleBags.TEXTURE), + SADDLE_BAGS_LEFT (0xC6, new Identifier("minelittlepony", "textures/models/saddlebags.png")), + SADDLE_BAGS_RIGHT (0xC7, new Identifier("minelittlepony", "textures/models/saddlebags.png")), + SADDLE_BAGS_BOTH (0xC8, new Identifier("minelittlepony", "textures/models/saddlebags.png")), STETSON (0xFA, new Identifier("minelittlepony", "textures/models/stetson.png")); private int triggerValue; diff --git a/src/main/java/com/minelittlepony/client/ClientPonyConfig.java b/src/main/java/com/minelittlepony/client/ClientPonyConfig.java index b0ca04b1..6928df91 100644 --- a/src/main/java/com/minelittlepony/client/ClientPonyConfig.java +++ b/src/main/java/com/minelittlepony/client/ClientPonyConfig.java @@ -4,15 +4,14 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.entity.player.PlayerEntity; import com.minelittlepony.api.config.PonyConfig; -import com.minelittlepony.client.model.armour.DefaultArmourTextureResolver; +import com.minelittlepony.client.model.armour.ArmourTextureResolver; import com.minelittlepony.client.render.MobRenderers; import com.minelittlepony.common.client.gui.VisibilityMode; import com.minelittlepony.common.util.settings.Setting; import java.nio.file.Path; -public class ClientPonyConfig extends PonyConfig { - +class ClientPonyConfig extends PonyConfig { /** * Visibility mode for the horse button. */ @@ -25,7 +24,7 @@ public class ClientPonyConfig extends PonyConfig { public ClientPonyConfig(Path path) { super(path); MobRenderers.REGISTRY.values().forEach(r -> value("entities", r.name, true)); - disablePonifiedArmour.onChanged(t -> DefaultArmourTextureResolver.INSTANCE.invalidate()); + disablePonifiedArmour.onChanged(t -> ArmourTextureResolver.INSTANCE.invalidate()); } @Override diff --git a/src/main/java/com/minelittlepony/client/HorseCam.java b/src/main/java/com/minelittlepony/client/HorseCam.java index e4acc3f0..5c183458 100644 --- a/src/main/java/com/minelittlepony/client/HorseCam.java +++ b/src/main/java/com/minelittlepony/client/HorseCam.java @@ -5,6 +5,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.hit.HitResult; import net.minecraft.util.math.*; +import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.api.pony.Pony; import com.minelittlepony.common.util.settings.Setting; @@ -31,7 +32,7 @@ public class HorseCam { */ public static float transformCameraAngle(float pitch) { - if (!MineLittlePony.getInstance().getConfig().fillycam.get()) { + if (!PonyConfig.getInstance().fillycam.get()) { return pitch; } @@ -51,7 +52,7 @@ public class HorseCam { Pony pony = Pony.getManager().getPony(player); if (!pony.race().isHuman()) { - Setting fillyCam = MineLittlePony.getInstance().getConfig().fillycam; + Setting fillyCam = PonyConfig.getInstance().fillycam; fillyCam.set(false); final float vanillaHeight = player.getEyeHeight(player.getPose()); diff --git a/src/main/java/com/minelittlepony/client/MineLittlePony.java b/src/main/java/com/minelittlepony/client/MineLittlePony.java index 2b9edf9b..e46c419c 100644 --- a/src/main/java/com/minelittlepony/client/MineLittlePony.java +++ b/src/main/java/com/minelittlepony/client/MineLittlePony.java @@ -1,8 +1,7 @@ package com.minelittlepony.client; -import com.minelittlepony.api.config.PonyConfig; +import com.minelittlepony.api.events.Channel; import com.minelittlepony.api.pony.PonyManager; -import com.minelittlepony.api.pony.network.fabric.Channel; import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.render.PonyRenderDispatcher; import com.minelittlepony.common.client.gui.VisibilityMode; @@ -130,13 +129,6 @@ public class MineLittlePony implements ClientModInitializer { } } - /** - * Gets the global MineLP client configuration. - */ - public PonyConfig getConfig() { - return config; - } - public PonyManager getManager() { return ponyManager; } diff --git a/src/main/java/com/minelittlepony/client/PonySettingsscreen.java b/src/main/java/com/minelittlepony/client/PonySettingsscreen.java index 7e0348cd..a07a2e0a 100644 --- a/src/main/java/com/minelittlepony/client/PonySettingsscreen.java +++ b/src/main/java/com/minelittlepony/client/PonySettingsscreen.java @@ -5,6 +5,7 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.text.*; +import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.client.render.MobRenderers; import com.minelittlepony.common.client.gui.GameGui; import com.minelittlepony.common.client.gui.ScrollContainer; @@ -43,7 +44,7 @@ public class PonySettingsscreen extends GameGui { public PonySettingsscreen(@Nullable Screen parent) { super(Text.literal(OPTIONS_PREFIX + "title"), parent); - config = (ClientPonyConfig)MineLittlePony.getInstance().getConfig(); + config = (ClientPonyConfig)PonyConfig.getInstance(); content.margin.top = 30; content.margin.bottom = 30; diff --git a/src/main/java/com/minelittlepony/client/SkinsProxy.java b/src/main/java/com/minelittlepony/client/SkinsProxy.java index 2f7d6d42..85dac3a2 100644 --- a/src/main/java/com/minelittlepony/client/SkinsProxy.java +++ b/src/main/java/com/minelittlepony/client/SkinsProxy.java @@ -43,17 +43,3 @@ public class SkinsProxy { return Set.of(); } } - - - - - - - - - - - - - - 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 e0278e33..87479a2f 100644 --- a/src/main/java/com/minelittlepony/client/compat/hdskins/DummyPony.java +++ b/src/main/java/com/minelittlepony/client/compat/hdskins/DummyPony.java @@ -2,8 +2,8 @@ package com.minelittlepony.client.compat.hdskins; import net.minecraft.client.world.ClientWorld; +import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.api.pony.*; -import com.minelittlepony.client.PreviewModel; import com.minelittlepony.client.render.EquineRenderManager; import com.minelittlepony.hdskins.client.gui.player.*; import com.minelittlepony.hdskins.client.gui.player.skins.PlayerSkins; diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinDefaultSkinHelper.java b/src/main/java/com/minelittlepony/client/mixin/MixinDefaultSkinHelper.java index e25887de..8e3ab7fa 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinDefaultSkinHelper.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinDefaultSkinHelper.java @@ -1,8 +1,8 @@ package com.minelittlepony.client.mixin; +import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.api.config.PonyLevel; import com.minelittlepony.api.pony.DefaultPonySkinHelper; -import com.minelittlepony.client.MineLittlePony; import net.minecraft.client.util.DefaultSkinHelper; import net.minecraft.client.util.SkinTextures; @@ -21,7 +21,7 @@ abstract class MixinDefaultSkinHelper { at = @At("RETURN"), cancellable = true) private static void onGetTexture(CallbackInfoReturnable cir) { - if (MineLittlePony.getInstance().getConfig().ponyLevel.get() == PonyLevel.PONIES) { + if (PonyConfig.getInstance().ponyLevel.get() == PonyLevel.PONIES) { cir.setReturnValue(DefaultPonySkinHelper.STEVE); } } @@ -30,7 +30,7 @@ abstract class MixinDefaultSkinHelper { at = @At("RETURN"), cancellable = true) private static void onGetTexture(UUID uuid, CallbackInfoReturnable cir) { - if (MineLittlePony.getInstance().getConfig().ponyLevel.get() == PonyLevel.PONIES) { + if (PonyConfig.getInstance().ponyLevel.get() == PonyLevel.PONIES) { cir.setReturnValue(DefaultPonySkinHelper.getTextures(cir.getReturnValue())); } } diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index 29bd5693..a5aed610 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -1,7 +1,7 @@ package com.minelittlepony.client.model; import com.minelittlepony.api.model.*; -import com.minelittlepony.api.model.fabric.PonyModelPrepareCallback; +import com.minelittlepony.api.events.PonyModelPrepareCallback; import com.minelittlepony.api.pony.meta.Sizes; import com.minelittlepony.client.transform.PonyTransformation; import com.minelittlepony.client.util.render.RenderList; @@ -50,7 +50,7 @@ public abstract class AbstractPonyModel extends ClientPo protected final RenderList mainRenderList; - private final List parts = new ArrayList<>(); + private final List parts = new ArrayList<>(); public AbstractPonyModel(ModelPart tree) { super(tree); @@ -66,18 +66,18 @@ public abstract class AbstractPonyModel extends ClientPo .add(withStage(BodyPart.HEAD, helmetRenderList = RenderList.of(hat))); } - protected

P addPart(P part) { + protected

P addPart(P part) { parts.add(part); return part; } - protected RenderList forPart(Supplier part) { + protected RenderList forPart(Supplier part) { return (stack, vertices, overlayUv, lightUv, red, green, blue, alpha) -> { part.get().renderPart(stack, vertices, overlayUv, lightUv, red, green, blue, alpha, attributes); }; } - protected RenderList forPart(IPart part) { + protected RenderList forPart(SubModel part) { return (stack, vertices, overlayUv, lightUv, red, green, blue, alpha) -> { part.renderPart(stack, vertices, overlayUv, lightUv, red, green, blue, alpha, attributes); }; diff --git a/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java b/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java index 6fdf079a..ceb4c76b 100644 --- a/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java @@ -8,8 +8,8 @@ import net.minecraft.util.Hand; import org.jetbrains.annotations.Nullable; +import com.minelittlepony.api.events.PonyModelPrepareCallback; import com.minelittlepony.api.model.*; -import com.minelittlepony.api.model.fabric.PonyModelPrepareCallback; import com.minelittlepony.api.pony.Pony; import com.minelittlepony.api.pony.PonyData; import com.minelittlepony.api.pony.meta.Size; @@ -93,10 +93,16 @@ public abstract class ClientPonyModel extends MsonPlayer } @Override - public ModelPart getArm(Arm side) { - return super.getArm(side); + public ModelPart getForeLeg(Arm side) { + return getArm(side); } + @Override + public ModelPart getHindLeg(Arm side) { + return side == Arm.LEFT ? leftLeg : rightLeg; + } + + @Override public ArmPose getArmPoseForSide(Arm side) { return side == Arm.RIGHT ? rightArmPose : leftArmPose; } diff --git a/src/main/java/com/minelittlepony/client/model/ModelKeyImpl.java b/src/main/java/com/minelittlepony/client/model/ModelKeyImpl.java index ece1b60c..5418d3bb 100644 --- a/src/main/java/com/minelittlepony/client/model/ModelKeyImpl.java +++ b/src/main/java/com/minelittlepony/client/model/ModelKeyImpl.java @@ -6,7 +6,7 @@ import net.minecraft.util.Identifier; import net.minecraft.util.Util; import com.google.common.base.Preconditions; -import com.minelittlepony.client.MineLittlePony; +import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.mson.api.*; import com.minelittlepony.mson.api.MsonModel.Factory; import com.minelittlepony.mson.api.model.traversal.PartSkeleton; @@ -79,7 +79,7 @@ final class ModelKeyImpl implements ModelKey, LocalBlock { } private ModelContext getModelContext(FileContent content) { - if (MineLittlePony.getInstance().getConfig().horsieMode.get()) { + if (PonyConfig.getInstance().horsieMode.get()) { return content.createContext(null, null, content.getLocals().extendWith(getId(), Optional.of(this), Optional.empty()).bake()); } return content.createContext(null, null, content.getLocals().bake()); diff --git a/src/main/java/com/minelittlepony/client/model/PlayerModelKey.java b/src/main/java/com/minelittlepony/client/model/PlayerModelKey.java index 28d52f93..18027478 100644 --- a/src/main/java/com/minelittlepony/client/model/PlayerModelKey.java +++ b/src/main/java/com/minelittlepony/client/model/PlayerModelKey.java @@ -7,6 +7,7 @@ import net.minecraft.util.Identifier; import org.jetbrains.annotations.Nullable; +import com.minelittlepony.api.model.ModelWrapper; import com.minelittlepony.api.model.PonyModel; import com.minelittlepony.client.model.armour.PonyArmourModel; import com.minelittlepony.mson.api.*; diff --git a/src/main/java/com/minelittlepony/api/model/armour/ArmorModelRegistry.java b/src/main/java/com/minelittlepony/client/model/armour/ArmorModelRegistry.java similarity index 89% rename from src/main/java/com/minelittlepony/api/model/armour/ArmorModelRegistry.java rename to src/main/java/com/minelittlepony/client/model/armour/ArmorModelRegistry.java index 851742f6..eb277e84 100644 --- a/src/main/java/com/minelittlepony/api/model/armour/ArmorModelRegistry.java +++ b/src/main/java/com/minelittlepony/client/model/armour/ArmorModelRegistry.java @@ -1,10 +1,9 @@ -package com.minelittlepony.api.model.armour; +package com.minelittlepony.client.model.armour; import net.minecraft.item.Item; import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; -import com.minelittlepony.client.model.armour.PonyArmourModel; import com.minelittlepony.mson.api.ModelKey; import com.minelittlepony.mson.api.Mson; diff --git a/src/main/java/com/minelittlepony/api/model/armour/ArmourLayer.java b/src/main/java/com/minelittlepony/client/model/armour/ArmourLayer.java similarity index 87% rename from src/main/java/com/minelittlepony/api/model/armour/ArmourLayer.java rename to src/main/java/com/minelittlepony/client/model/armour/ArmourLayer.java index 7fd8afec..0710a0bb 100644 --- a/src/main/java/com/minelittlepony/api/model/armour/ArmourLayer.java +++ b/src/main/java/com/minelittlepony/client/model/armour/ArmourLayer.java @@ -1,4 +1,4 @@ -package com.minelittlepony.api.model.armour; +package com.minelittlepony.client.model.armour; /** * The layer used to render a given armour piece. diff --git a/src/main/java/com/minelittlepony/client/model/armour/DefaultArmourTextureResolver.java b/src/main/java/com/minelittlepony/client/model/armour/ArmourTextureResolver.java similarity index 92% rename from src/main/java/com/minelittlepony/client/model/armour/DefaultArmourTextureResolver.java rename to src/main/java/com/minelittlepony/client/model/armour/ArmourTextureResolver.java index 27cf4277..63d04bbd 100644 --- a/src/main/java/com/minelittlepony/client/model/armour/DefaultArmourTextureResolver.java +++ b/src/main/java/com/minelittlepony/client/model/armour/ArmourTextureResolver.java @@ -13,9 +13,6 @@ import com.google.common.base.Strings; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.minelittlepony.api.config.PonyConfig; -import com.minelittlepony.api.model.armour.ArmourLayer; -import com.minelittlepony.api.model.armour.ArmourVariant; -import com.minelittlepony.api.model.armour.IArmourTextureResolver; import com.minelittlepony.util.ResourceUtil; import org.jetbrains.annotations.Nullable; @@ -38,8 +35,8 @@ import java.util.concurrent.TimeUnit; * - the "minecraft" namespace is always replaced with "minelittlepony" *

*/ -public class DefaultArmourTextureResolver implements IArmourTextureResolver { - public static final DefaultArmourTextureResolver INSTANCE = new DefaultArmourTextureResolver(); +public class ArmourTextureResolver { + public static final ArmourTextureResolver INSTANCE = new ArmourTextureResolver(); private final Cache cache = CacheBuilder.newBuilder() .expireAfterAccess(30, TimeUnit.SECONDS) @@ -49,7 +46,6 @@ public class DefaultArmourTextureResolver implements IArmourTextureResolver { cache.invalidateAll(); } - @Override public Identifier getTexture(LivingEntity entity, ItemStack stack, EquipmentSlot slot, ArmourLayer layer, @Nullable String type) { Identifier material = stack.getItem() instanceof ArmorItem armor ? new Identifier(armor.getMaterial().getName()) @@ -129,7 +125,6 @@ public class DefaultArmourTextureResolver implements IArmourTextureResolver { return MinecraftClient.getInstance().getResourceManager().getResource(texture).isPresent(); } - @Override public ArmourVariant getVariant(ArmourLayer layer, Identifier resolvedTexture) { if (resolvedTexture.getPath().endsWith("_pony.png")) { return ArmourVariant.NORMAL; diff --git a/src/main/java/com/minelittlepony/api/model/armour/ArmourVariant.java b/src/main/java/com/minelittlepony/client/model/armour/ArmourVariant.java similarity index 88% rename from src/main/java/com/minelittlepony/api/model/armour/ArmourVariant.java rename to src/main/java/com/minelittlepony/client/model/armour/ArmourVariant.java index dea90d53..a04100ef 100644 --- a/src/main/java/com/minelittlepony/api/model/armour/ArmourVariant.java +++ b/src/main/java/com/minelittlepony/client/model/armour/ArmourVariant.java @@ -1,7 +1,6 @@ -package com.minelittlepony.api.model.armour; +package com.minelittlepony.client.model.armour; import com.minelittlepony.client.model.ModelType; -import com.minelittlepony.client.model.armour.PonyArmourModel; import com.minelittlepony.mson.api.ModelKey; import java.util.Optional; diff --git a/src/main/java/com/minelittlepony/client/model/armour/PonyArmourModel.java b/src/main/java/com/minelittlepony/client/model/armour/PonyArmourModel.java index 8de1de26..773b7181 100644 --- a/src/main/java/com/minelittlepony/client/model/armour/PonyArmourModel.java +++ b/src/main/java/com/minelittlepony/client/model/armour/PonyArmourModel.java @@ -6,16 +6,14 @@ import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; import com.minelittlepony.api.model.PonyModel; -import com.minelittlepony.api.model.armour.*; import com.minelittlepony.client.model.AbstractPonyModel; -public class PonyArmourModel extends AbstractPonyModel implements IArmourModel { +public class PonyArmourModel extends AbstractPonyModel { public PonyArmourModel(ModelPart tree) { super(tree); } - @Override public boolean poseModel(T entity, float limbAngle, float limbDistance, float age, float headYaw, float headPitch, EquipmentSlot slot, ArmourLayer layer, PonyModel mainModel) { diff --git a/src/main/java/com/minelittlepony/client/model/entity/GuardianPonyModel.java b/src/main/java/com/minelittlepony/client/model/entity/GuardianPonyModel.java index 385a8bae..3d67c724 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/GuardianPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/GuardianPonyModel.java @@ -6,10 +6,11 @@ import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.model.GuardianEntityModel; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.mob.GuardianEntity; -import com.minelittlepony.client.model.IPonyMixinModel; + +import com.minelittlepony.api.model.PonyModelMixin; import com.minelittlepony.client.model.entity.race.SeaponyModel; -public class GuardianPonyModel extends GuardianEntityModel implements IPonyMixinModel.Caster, ModelPart> { +public class GuardianPonyModel extends GuardianEntityModel implements PonyModelMixin.Caster, ModelPart> { private final SeaponyModel mixin; public GuardianPonyModel(ModelPart tree) { diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/AlicornModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/AlicornModel.java index e2448dfe..aeb45361 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/AlicornModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/AlicornModel.java @@ -1,6 +1,6 @@ package com.minelittlepony.client.model.entity.race; -import com.minelittlepony.api.model.IPart; +import com.minelittlepony.api.model.SubModel; import com.minelittlepony.api.model.WingedPonyModel; import com.minelittlepony.client.model.part.PonyWings; import com.minelittlepony.mson.api.ModelView; @@ -24,7 +24,7 @@ public class AlicornModel extends UnicornModel implem } @Override - public IPart getWings() { + public SubModel getWings() { return wings; } } diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/EarthPonyModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/EarthPonyModel.java index 5e2aa335..60cfde72 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/EarthPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/EarthPonyModel.java @@ -1,6 +1,6 @@ package com.minelittlepony.client.model.entity.race; -import com.minelittlepony.api.model.IPart; +import com.minelittlepony.api.model.SubModel; import com.minelittlepony.client.model.AbstractPonyModel; import com.minelittlepony.client.model.part.*; import com.minelittlepony.mson.api.ModelView; @@ -12,7 +12,7 @@ public class EarthPonyModel extends AbstractPonyModel private final boolean smallArms; - protected IPart tail; + protected SubModel tail; protected PonySnout snout; protected PonyEars ears; diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/PegasusModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/PegasusModel.java index 090c92ea..f120d9da 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/PegasusModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/PegasusModel.java @@ -1,6 +1,6 @@ package com.minelittlepony.client.model.entity.race; -import com.minelittlepony.api.model.IPart; +import com.minelittlepony.api.model.SubModel; import com.minelittlepony.api.model.WingedPonyModel; import com.minelittlepony.client.model.part.PonyWings; import com.minelittlepony.mson.api.ModelView; @@ -24,7 +24,7 @@ public class PegasusModel extends EarthPonyModel impl } @Override - public IPart getWings() { + public SubModel getWings() { return wings; } } 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 3b68c439..47959c2d 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 @@ -1,9 +1,9 @@ package com.minelittlepony.client.model.entity.race; -import com.minelittlepony.client.model.armour.PonyArmourModel; import com.minelittlepony.mson.api.ModelView; import com.minelittlepony.api.model.*; import com.minelittlepony.api.pony.Pony; +import com.minelittlepony.client.model.armour.PonyArmourModel; import net.minecraft.client.model.ModelPart; import net.minecraft.client.util.math.MatrixStack; diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/UnicornModel.java b/src/main/java/com/minelittlepony/client/model/entity/race/UnicornModel.java index 077a023a..d09f5fed 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/UnicornModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/UnicornModel.java @@ -1,9 +1,9 @@ package com.minelittlepony.client.model.entity.race; +import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.api.model.*; import com.minelittlepony.api.pony.meta.Size; import com.minelittlepony.api.pony.meta.Sizes; -import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.model.part.UnicornHorn; import com.minelittlepony.client.util.render.RenderList; import com.minelittlepony.mson.api.ModelView; @@ -57,7 +57,7 @@ public class UnicornModel extends EarthPonyModel impl @Override public boolean isCasting() { - return MineLittlePony.getInstance().getConfig().tpsmagic.get() + return PonyConfig.getInstance().tpsmagic.get() && (rightArmPose != ArmPose.EMPTY || leftArmPose != ArmPose.EMPTY); } @@ -70,7 +70,7 @@ public class UnicornModel extends EarthPonyModel impl @Override public ModelPart getArm(Arm side) { - if (hasMagic() && getArmPoseForSide(side) != ArmPose.EMPTY && MineLittlePony.getInstance().getConfig().tpsmagic.get()) { + if (hasMagic() && getArmPoseForSide(side) != ArmPose.EMPTY && PonyConfig.getInstance().tpsmagic.get()) { return side == Arm.LEFT ? unicornArmLeft : unicornArmRight; } return super.getArm(side); @@ -80,7 +80,7 @@ public class UnicornModel extends EarthPonyModel impl protected void positionheldItem(Arm arm, MatrixStack matrices) { super.positionheldItem(arm, matrices); - if (!MineLittlePony.getInstance().getConfig().tpsmagic.get() || !hasMagic()) { + if (!PonyConfig.getInstance().tpsmagic.get() || !hasMagic()) { return; } 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 acef4ec4..03e7764d 100644 --- a/src/main/java/com/minelittlepony/client/model/gear/SaddleBags.java +++ b/src/main/java/com/minelittlepony/client/model/gear/SaddleBags.java @@ -13,13 +13,9 @@ import net.minecraft.client.model.ModelPart; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; -import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; public class SaddleBags extends WearableGear { - - public static final Identifier TEXTURE = new Identifier("minelittlepony", "textures/models/saddlebags.png"); - private final ModelPart leftBag; private final ModelPart rightBag; diff --git a/src/main/java/com/minelittlepony/client/model/part/LionTail.java b/src/main/java/com/minelittlepony/client/model/part/LionTail.java index ade60d68..09db309f 100644 --- a/src/main/java/com/minelittlepony/client/model/part/LionTail.java +++ b/src/main/java/com/minelittlepony/client/model/part/LionTail.java @@ -5,11 +5,11 @@ import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.MathHelper; -import com.minelittlepony.api.model.IPart; +import com.minelittlepony.api.model.SubModel; import com.minelittlepony.api.model.ModelAttributes; import com.minelittlepony.common.util.animation.Interpolator; -public class LionTail implements IPart { +public class LionTail implements SubModel { private ModelPart tail; diff --git a/src/main/java/com/minelittlepony/client/model/part/PonyEars.java b/src/main/java/com/minelittlepony/client/model/part/PonyEars.java index 1e2f1c92..56f3671b 100644 --- a/src/main/java/com/minelittlepony/client/model/part/PonyEars.java +++ b/src/main/java/com/minelittlepony/client/model/part/PonyEars.java @@ -5,12 +5,12 @@ import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.MathHelper; -import com.minelittlepony.api.model.IPart; +import com.minelittlepony.api.model.SubModel; import com.minelittlepony.api.model.ModelAttributes; import com.minelittlepony.mson.api.*; import com.minelittlepony.mson.api.model.PartBuilder; -public class PonyEars implements IPart, MsonModel { +public class PonyEars implements SubModel, MsonModel { private final ModelPart right; private final ModelPart left; diff --git a/src/main/java/com/minelittlepony/client/model/part/PonySnout.java b/src/main/java/com/minelittlepony/client/model/part/PonySnout.java index 2465eb70..3372c789 100644 --- a/src/main/java/com/minelittlepony/client/model/part/PonySnout.java +++ b/src/main/java/com/minelittlepony/client/model/part/PonySnout.java @@ -4,14 +4,14 @@ import net.minecraft.client.model.ModelPart; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.util.math.MatrixStack; -import com.minelittlepony.api.model.IPart; +import com.minelittlepony.api.config.PonyConfig; +import com.minelittlepony.api.model.SubModel; import com.minelittlepony.api.model.ModelAttributes; import com.minelittlepony.api.pony.meta.Gender; -import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.mson.api.*; import com.minelittlepony.mson.api.model.PartBuilder; -public class PonySnout implements IPart, MsonModel { +public class PonySnout implements SubModel, MsonModel { private final ModelPart mare; private final ModelPart stallion; @@ -41,7 +41,7 @@ public class PonySnout implements IPart, MsonModel { public void setVisible(boolean visible, ModelAttributes attributes) { visible &= !attributes.isHorsey && !attributes.metadata.race().isHuman() - && MineLittlePony.getInstance().getConfig().snuzzles.get(); + && PonyConfig.getInstance().snuzzles.get(); Gender gender = attributes.metadata.gender(); mare.visible = (visible && gender.isMare()); diff --git a/src/main/java/com/minelittlepony/client/model/part/PonyTail.java b/src/main/java/com/minelittlepony/client/model/part/PonyTail.java index 0057fae6..568d64c9 100644 --- a/src/main/java/com/minelittlepony/client/model/part/PonyTail.java +++ b/src/main/java/com/minelittlepony/client/model/part/PonyTail.java @@ -14,7 +14,7 @@ import com.minelittlepony.util.MathUtil; import java.util.List; import java.util.stream.IntStream; -public class PonyTail implements IPart, MsonModel { +public class PonyTail implements SubModel, MsonModel { private static final float TAIL_Z = 14; private static final float TAIL_RIDING_Y = 3; private static final float TAIL_RIDING_Z = 13; diff --git a/src/main/java/com/minelittlepony/client/model/part/PonyWings.java b/src/main/java/com/minelittlepony/client/model/part/PonyWings.java index 1152b7bb..187c3f5f 100644 --- a/src/main/java/com/minelittlepony/client/model/part/PonyWings.java +++ b/src/main/java/com/minelittlepony/client/model/part/PonyWings.java @@ -12,7 +12,7 @@ import com.minelittlepony.mson.api.ModelView; import com.minelittlepony.mson.api.MsonModel; import com.minelittlepony.util.MathUtil; -public class PonyWings> implements IPart, MsonModel { +public class PonyWings> implements SubModel, MsonModel { protected T pegasus; diff --git a/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java b/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java index fd373852..f5e1d2ed 100644 --- a/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java +++ b/src/main/java/com/minelittlepony/client/model/part/SeaponyTail.java @@ -1,6 +1,6 @@ package com.minelittlepony.client.model.part; -import com.minelittlepony.api.model.IPart; +import com.minelittlepony.api.model.SubModel; import com.minelittlepony.api.model.ModelAttributes; import com.minelittlepony.mson.api.MsonModel; @@ -9,7 +9,7 @@ import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.MathHelper; -public class SeaponyTail implements IPart, MsonModel { +public class SeaponyTail implements SubModel, MsonModel { private final ModelPart tailBase; private final ModelPart tailTip; diff --git a/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java b/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java index 56601d1b..cddb9899 100644 --- a/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java +++ b/src/main/java/com/minelittlepony/client/model/part/UnicornHorn.java @@ -7,12 +7,12 @@ import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider.Immediate; import net.minecraft.client.util.math.MatrixStack; -import com.minelittlepony.api.model.IPart; +import com.minelittlepony.api.model.SubModel; import com.minelittlepony.api.model.ModelAttributes; import com.minelittlepony.client.render.MagicGlow; import com.minelittlepony.common.util.Color; -public class UnicornHorn implements IPart { +public class UnicornHorn implements SubModel { private final ModelPart horn; private final ModelPart glow; diff --git a/src/main/java/com/minelittlepony/client/render/DebugBoundingBoxRenderer.java b/src/main/java/com/minelittlepony/client/render/DebugBoundingBoxRenderer.java index 2cb4f42f..1359858f 100644 --- a/src/main/java/com/minelittlepony/client/render/DebugBoundingBoxRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/DebugBoundingBoxRenderer.java @@ -17,7 +17,6 @@ import com.minelittlepony.api.pony.Pony; import com.minelittlepony.client.PonyBounds; public final class DebugBoundingBoxRenderer { - public static void render(Pony pony, EntityRenderer renderer, T entity, MatrixStack stack, VertexConsumerProvider renderContext, float tickDelta) { if (RenderPass.getCurrent() != RenderPass.WORLD) { diff --git a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java index 4a0d1ec6..03a16657 100644 --- a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java +++ b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java @@ -1,11 +1,11 @@ package com.minelittlepony.client.render; +import com.minelittlepony.api.config.PonyConfig; +import com.minelittlepony.api.events.Channel; +import com.minelittlepony.api.events.PonyDataCallback; import com.minelittlepony.api.model.*; import com.minelittlepony.api.pony.Pony; -import com.minelittlepony.api.pony.network.fabric.Channel; -import com.minelittlepony.api.pony.network.fabric.PonyDataCallback; import com.minelittlepony.client.MineLittlePony; -import com.minelittlepony.client.model.ModelWrapper; import com.minelittlepony.client.transform.PonyPosture; import com.minelittlepony.mson.api.ModelKey; import com.minelittlepony.util.MathUtil; @@ -65,7 +65,7 @@ public class EquineRenderManager option() { - return MineLittlePony.getInstance().getConfig().getCategory("entities").get(name); + return PonyConfig.getInstance().getCategory("entities").get(name); } public boolean set(boolean value) { diff --git a/src/main/java/com/minelittlepony/client/render/blockentity/skull/PonySkullRenderer.java b/src/main/java/com/minelittlepony/client/render/blockentity/skull/PonySkullRenderer.java index d38067f5..6863b1a7 100644 --- a/src/main/java/com/minelittlepony/client/render/blockentity/skull/PonySkullRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/blockentity/skull/PonySkullRenderer.java @@ -3,7 +3,6 @@ package com.minelittlepony.client.render.blockentity.skull; import com.google.common.collect.Maps; import com.minelittlepony.api.config.PonyConfig; import com.minelittlepony.api.pony.Pony; -import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.render.MobRenderers; import com.minelittlepony.client.render.entity.SkeleponyRenderer; @@ -50,7 +49,7 @@ public class PonySkullRenderer { ISkull skull = SKULLS.get(skullType); - if (skull == null || !skull.canRender(MineLittlePony.getInstance().getConfig())) { + if (skull == null || !skull.canRender(PonyConfig.getInstance())) { return null; } @@ -64,7 +63,7 @@ public class PonySkullRenderer { MatrixStack stack, VertexConsumerProvider renderContext, RenderLayer layer, int lightUv) { - if (selectedSkull == null || !selectedSkull.canRender(MineLittlePony.getInstance().getConfig())) { + if (selectedSkull == null || !selectedSkull.canRender(PonyConfig.getInstance())) { return false; } 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 84da6086..2fa6f566 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/AquaticPlayerPonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/AquaticPlayerPonyRenderer.java @@ -1,9 +1,9 @@ package com.minelittlepony.client.render.entity; +import com.minelittlepony.api.model.PreviewModel; import com.minelittlepony.api.pony.Pony; import com.minelittlepony.api.pony.PonyPosture; import com.minelittlepony.api.pony.meta.Race; -import com.minelittlepony.client.PreviewModel; import com.minelittlepony.client.SkinsProxy; import com.minelittlepony.util.MathUtil; 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 38dcb687..ac21978c 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java @@ -1,6 +1,7 @@ package com.minelittlepony.client.render.entity; import com.minelittlepony.api.model.ModelAttributes; +import com.minelittlepony.api.model.ModelWrapper; import com.minelittlepony.api.pony.Pony; import com.minelittlepony.api.pony.meta.Race; import com.minelittlepony.api.pony.meta.Wearable; 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 e6320a2c..a91aacf5 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PonyStandRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PonyStandRenderer.java @@ -11,11 +11,11 @@ import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.decoration.ArmorStandEntity; import net.minecraft.util.math.Vec3d; -import com.minelittlepony.api.model.armour.ArmourLayer; +import com.minelittlepony.api.model.ModelWrapper; import com.minelittlepony.api.pony.PonyData; import com.minelittlepony.api.pony.meta.Race; import com.minelittlepony.client.model.ModelType; -import com.minelittlepony.client.model.ModelWrapper; +import com.minelittlepony.client.model.armour.ArmourLayer; import com.minelittlepony.client.model.entity.PonyArmourStandModel; import com.minelittlepony.client.model.entity.race.EarthPonyModel; import com.minelittlepony.client.render.entity.feature.ArmourFeature; diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/AbstractPonyFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/AbstractPonyFeature.java index 6ee4d6ce..2be0b9b8 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/AbstractPonyFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/AbstractPonyFeature.java @@ -1,7 +1,7 @@ package com.minelittlepony.client.render.entity.feature; +import com.minelittlepony.api.model.ModelWrapper; import com.minelittlepony.api.model.PonyModel; -import com.minelittlepony.client.model.ModelWrapper; import com.minelittlepony.client.render.IPonyRenderContext; import net.minecraft.client.render.VertexConsumerProvider; 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 30a27d97..d3f7ecbd 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 @@ -1,9 +1,8 @@ package com.minelittlepony.client.render.entity.feature; +import com.minelittlepony.api.model.ModelWrapper; import com.minelittlepony.api.model.PonyModel; -import com.minelittlepony.api.model.armour.*; -import com.minelittlepony.client.model.ModelWrapper; -import com.minelittlepony.client.model.armour.DefaultArmourTextureResolver; +import com.minelittlepony.client.model.armour.*; import com.minelittlepony.client.render.IPonyRenderContext; import com.minelittlepony.common.util.Color; @@ -39,7 +38,7 @@ public class ArmourFeature & Po } } - public static & IArmourModel> void renderArmor( + public static > void renderArmor( ModelWrapper> pony, MatrixStack matrices, VertexConsumerProvider renderContext, int light, T entity, float limbDistance, float limbAngle, @@ -52,9 +51,8 @@ public class ArmourFeature & Po return; } - IArmourTextureResolver resolver = DefaultArmourTextureResolver.INSTANCE; - Identifier texture = resolver.getTexture(entity, stack, armorSlot, layer, null); - ArmourVariant variant = resolver.getVariant(layer, texture); + Identifier texture = ArmourTextureResolver.INSTANCE.getTexture(entity, stack, armorSlot, layer, null); + ArmourVariant variant = ArmourTextureResolver.INSTANCE.getVariant(layer, texture); boolean glint = stack.hasGlint(); Item item = stack.getItem(); @@ -76,8 +74,8 @@ public class ArmourFeature & Po model.render(matrices, getArmorConsumer(renderContext, texture, glint), light, OverlayTexture.DEFAULT_UV, red, green, blue, 1); if (item instanceof DyeableArmorItem) { - Identifier tex = resolver.getTexture(entity, stack, armorSlot, layer, "overlay"); - pony.getArmourModel(stack, layer, resolver.getVariant(layer, tex)) + Identifier tex = ArmourTextureResolver.INSTANCE.getTexture(entity, stack, armorSlot, layer, "overlay"); + pony.getArmourModel(stack, layer, ArmourTextureResolver.INSTANCE.getVariant(layer, tex)) .filter(m -> m.poseModel(entity, limbAngle, limbDistance, age, headYaw, headPitch, armorSlot, layer, pony.body())) .ifPresent(m -> { m.render(matrices, getArmorConsumer(renderContext, tex, false), light, OverlayTexture.DEFAULT_UV, 1, 1, 1, 1); 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 bc3dad01..2ba3802f 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 @@ -19,20 +19,13 @@ import com.minelittlepony.client.render.IPonyRenderContext; import java.util.*; import java.util.concurrent.TimeUnit; -import java.util.function.Supplier; import java.util.stream.Collectors; public class GearFeature & PonyModel> extends AbstractPonyFeature { - private static final List> MOD_GEARS = new ArrayList<>(); - - public static void addModGear(Supplier gear) { - MOD_GEARS.add(gear); - } - private final List gears = Streams.concat( ModelType.getWearables().map(e -> new Entry(e.getValue().createModel(), e.getKey())), - MOD_GEARS.stream().map(e -> new Entry(e.get(), Wearable.NONE)) + Gear.MOD_GEARS.stream().map(e -> new Entry(e.get(), Wearable.NONE)) ).collect(Collectors.toList()); private final LoadingCache> randomisedGearCache = CacheBuilder.newBuilder() diff --git a/src/main/java/com/minelittlepony/client/render/entity/npc/AbstractNpcRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/npc/AbstractNpcRenderer.java index 53e9f1d1..2c514b57 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/npc/AbstractNpcRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/npc/AbstractNpcRenderer.java @@ -8,6 +8,7 @@ import net.minecraft.util.Identifier; import net.minecraft.village.VillagerDataContainer; import net.minecraft.village.VillagerProfession; +import com.minelittlepony.api.model.ModelWrapper; import com.minelittlepony.api.model.gear.Gear; import com.minelittlepony.api.pony.meta.Race; import com.minelittlepony.api.pony.meta.Wearable;