From fc5787559681c06dd47e09d7741c8290035e4a86 Mon Sep 17 00:00:00 2001 From: Sollace Date: Mon, 25 Nov 2019 17:49:20 +0200 Subject: [PATCH] *picks up house* *moves house outdoors* --- .../minelittlepony/client/MineLittlePony.java | 3 + .../client/PonyRenderManager.java | 17 ++++++ .../client/model/IPonyMixinModel.java | 6 ++ .../client/model/IPonyModel.java | 3 +- .../client/model/ModelType.java | 57 +++++++++++++++++++ .../client/model/PlayerModelKey.java | 52 +++++++++++++++++ .../client/model/entity/ModelBreezie.java | 19 ++++++- .../model/entity/race/ModelBatpony.java | 10 ---- .../model/entity/race/PlayerModels.java | 7 ++- .../render/entity/RenderEnderStallion.java | 6 +- .../render/entity/RenderPonyGuardian.java | 10 ++-- .../render/entity/RenderPonyIllager.java | 10 ++-- .../client/render/entity/RenderPonyMob.java | 14 +++-- .../render/entity/RenderPonyPillager.java | 6 +- .../render/entity/RenderPonyPlayer.java | 4 +- .../render/entity/RenderPonySkeleton.java | 14 ++--- .../render/entity/RenderPonyTrader.java | 6 +- .../client/render/entity/RenderPonyVex.java | 6 +- .../client/render/entity/RenderPonyWitch.java | 6 +- .../render/entity/RenderPonyZombie.java | 22 +++---- .../render/entity/RenderSeaponyPlayer.java | 2 +- .../villager/AbstractVillagerRenderer.java | 5 +- .../entity/villager/RenderPonyVillager.java | 6 +- .../villager/RenderPonyZombieVillager.java | 6 +- 24 files changed, 223 insertions(+), 74 deletions(-) create mode 100644 src/main/java/com/minelittlepony/client/model/ModelType.java create mode 100644 src/main/java/com/minelittlepony/client/model/PlayerModelKey.java delete mode 100644 src/main/java/com/minelittlepony/client/model/entity/race/ModelBatpony.java diff --git a/src/main/java/com/minelittlepony/client/MineLittlePony.java b/src/main/java/com/minelittlepony/client/MineLittlePony.java index 7ed60e05..1c9847b1 100644 --- a/src/main/java/com/minelittlepony/client/MineLittlePony.java +++ b/src/main/java/com/minelittlepony/client/MineLittlePony.java @@ -1,6 +1,7 @@ package com.minelittlepony.client; import com.minelittlepony.client.hdskins.IndirectHDSkins; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.pony.PonyManager; import com.minelittlepony.client.render.blockentity.skull.PonySkullRenderer; import com.minelittlepony.client.settings.ClientPonyConfig; @@ -89,6 +90,8 @@ public class MineLittlePony implements ClientModInitializer { if (FabricLoader.getInstance().isModLoaded("hdskins")) { IndirectHDSkins.initialize(); } + + ModelType.bootstrap(); } private void onClientReady(MinecraftClient client) { diff --git a/src/main/java/com/minelittlepony/client/PonyRenderManager.java b/src/main/java/com/minelittlepony/client/PonyRenderManager.java index 79e44060..380f0afa 100644 --- a/src/main/java/com/minelittlepony/client/PonyRenderManager.java +++ b/src/main/java/com/minelittlepony/client/PonyRenderManager.java @@ -1,6 +1,7 @@ package com.minelittlepony.client; import java.util.Map; +import java.util.function.Function; import com.google.common.collect.Maps; import com.minelittlepony.client.model.IPonyModel; @@ -13,6 +14,7 @@ import com.minelittlepony.client.render.IPonyRender; import javax.annotation.Nullable; import com.minelittlepony.common.mixin.MixinEntityRenderDispatcher; +import com.minelittlepony.mson.api.Mson; import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.MinecraftClient; @@ -79,6 +81,21 @@ public class PonyRenderManager { * @param factory The replacement value * @param The entity type */ + @SuppressWarnings("unchecked") + public void switchRenderer(boolean state, EntityType type, Function> factory) { + if (state) { + if (!renderMap.containsKey(type)) { + renderMap.put(type, ((MixinEntityRenderDispatcher)MinecraftClient.getInstance().getEntityRenderManager()).getEntityRenderers().get(type)); + } + Mson.getInstance().getEntityRendererRegistry().registerEntityRenderer(type, factory); + } else { + if (renderMap.containsKey(type)) { + Mson.getInstance().getEntityRendererRegistry().registerEntityRenderer(type, m -> (EntityRenderer)renderMap.get(type)); + } + } + } + + @Deprecated public void switchRenderer(boolean state, EntityType type, EntityRendererRegistry.Factory factory) { if (state) { if (!renderMap.containsKey(type)) { diff --git a/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java b/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java index 6d1c3af6..99548a75 100644 --- a/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java +++ b/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java @@ -9,6 +9,7 @@ import com.minelittlepony.model.BodyPart; import com.minelittlepony.model.IUnicorn; import com.minelittlepony.model.ModelAttributes; import com.minelittlepony.model.armour.IEquestrianArmour; +import com.minelittlepony.mson.api.ModelContext; import com.minelittlepony.pony.IPony; import com.minelittlepony.pony.IPonyData; import com.minelittlepony.pony.meta.Size; @@ -17,6 +18,11 @@ public interface IPonyMixinModel M mixin(); + @Override + default void init(ModelContext context) { + mixin().init(context); + } + @Override default void updateLivingState(T entity, IPony pony) { mixin().updateLivingState(entity, pony); diff --git a/src/main/java/com/minelittlepony/client/model/IPonyModel.java b/src/main/java/com/minelittlepony/client/model/IPonyModel.java index 8e543185..8217d8fe 100644 --- a/src/main/java/com/minelittlepony/client/model/IPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/IPonyModel.java @@ -7,9 +7,10 @@ import com.minelittlepony.model.ICapitated; import com.minelittlepony.model.ICompartmented; import com.minelittlepony.model.IModel; import com.minelittlepony.model.PonyModelConstants; +import com.minelittlepony.mson.api.MsonModel; import com.minelittlepony.pony.IPony; -public interface IPonyModel extends PonyModelConstants, IModel, ICapitated, ICompartmented { +public interface IPonyModel extends PonyModelConstants, IModel, ICapitated, ICompartmented, MsonModel { void updateLivingState(T entity, IPony pony); diff --git a/src/main/java/com/minelittlepony/client/model/ModelType.java b/src/main/java/com/minelittlepony/client/model/ModelType.java new file mode 100644 index 00000000..3df4ddf6 --- /dev/null +++ b/src/main/java/com/minelittlepony/client/model/ModelType.java @@ -0,0 +1,57 @@ +package com.minelittlepony.client.model; + +import net.minecraft.client.model.Model; +import net.minecraft.entity.mob.VexEntity; +import net.minecraft.util.Identifier; + +import com.minelittlepony.client.model.entity.ModelBreezie; +import com.minelittlepony.client.model.entity.ModelEnderStallion; +import com.minelittlepony.client.model.entity.ModelGuardianPony; +import com.minelittlepony.client.model.entity.ModelIllagerPony; +import com.minelittlepony.client.model.entity.ModelPillagerPony; +import com.minelittlepony.client.model.entity.ModelSkeletonPony; +import com.minelittlepony.client.model.entity.ModelVillagerPony; +import com.minelittlepony.client.model.entity.ModelWitchPony; +import com.minelittlepony.client.model.entity.ModelZombiePony; +import com.minelittlepony.client.model.entity.ModelZombieVillagerPony; +import com.minelittlepony.client.model.entity.race.ModelAlicorn; +import com.minelittlepony.client.model.entity.race.ModelChangeling; +import com.minelittlepony.client.model.entity.race.ModelPegasus; +import com.minelittlepony.client.model.entity.race.ModelUnicorn; +import com.minelittlepony.client.model.entity.race.ModelZebra; +import com.minelittlepony.mson.api.ModelKey; +import com.minelittlepony.mson.api.Mson; +import com.minelittlepony.mson.api.MsonModel; + +import java.util.function.Function; +import java.util.function.Supplier; + +public final class ModelType { + public static final ModelKey> VILLAGER = register("villager", ModelVillagerPony::new); + public static final ModelKey WITCH = register("witch", ModelWitchPony::new); + public static final ModelKey> ZOMBIE = register("zombie", ModelZombiePony::new); + public static final ModelKey ZOMBIE_VILLAGER = register("zombie_villager", ModelZombieVillagerPony::new); + public static final ModelKey> SKELETON = register("skeleton", ModelSkeletonPony::new); + public static final ModelKey> PILLAGER = register("pillager", ModelPillagerPony::new); + public static final ModelKey> ILLAGER = register("illager", ModelIllagerPony::new); + public static final ModelKey GUARDIAN = register("guardian", ModelGuardianPony::new); + public static final ModelKey ENDERMAN = register("enderman", ModelEnderStallion::new); + public static final ModelKey> BREEZIE = register("breezie", ModelBreezie::new); + + public static final PlayerModelKey> ALICORN = registerPlayer("alicorn", ModelAlicorn::new); + public static final PlayerModelKey> UNICORN = registerPlayer("unicorn", ModelUnicorn::new); + public static final PlayerModelKey> PEGASUS = registerPlayer("pegasus", ModelPegasus::new); + public static final PlayerModelKey> BAT_PONY = registerPlayer("batpony", ModelPegasus::new); + public static final PlayerModelKey> CHANGELING = registerPlayer("changeling", ModelChangeling::new); + public static final PlayerModelKey> ZEBRA = registerPlayer("zebra", ModelZebra::new); + + static PlayerModelKey registerPlayer(String name, Function constructor) { + return new PlayerModelKey<>(new Identifier("minelittlepony", "races/" + name), constructor); + } + + static ModelKey register(String name, Supplier constructor) { + return Mson.getInstance().registerModel(new Identifier("minelittlepony", name), constructor); + } + + public static void bootstrap() {}; +} diff --git a/src/main/java/com/minelittlepony/client/model/PlayerModelKey.java b/src/main/java/com/minelittlepony/client/model/PlayerModelKey.java new file mode 100644 index 00000000..d0b2e581 --- /dev/null +++ b/src/main/java/com/minelittlepony/client/model/PlayerModelKey.java @@ -0,0 +1,52 @@ +package com.minelittlepony.client.model; + +import net.minecraft.client.model.Model; +import net.minecraft.util.Identifier; + +import com.minelittlepony.mson.api.ModelKey; +import com.minelittlepony.mson.api.Mson; +import com.minelittlepony.mson.api.MsonModel; + +import java.util.function.Function; + +public class PlayerModelKey { + + private final ModelKey key; + + private boolean slim; + + public final ModelKey steveKey; + public final ModelKey alexKey; + + PlayerModelKey(Identifier id, Function factory) { + this.key = Mson.getInstance().registerModel(id, () -> factory.apply(slim)); + + steveKey = new Key(false); + alexKey = new Key(true); + } + + public T createModel(boolean slimArms) { + return (slimArms ? alexKey : steveKey).createModel(); + } + + private class Key implements ModelKey { + + private final boolean slim; + + public Key(boolean slim) { + this.slim = slim; + } + + @Override + public Identifier getId() { + return key.getId(); + } + + @Override + public T createModel() { + PlayerModelKey.this.slim = this.slim; + return key.createModel(); + } + + } +} diff --git a/src/main/java/com/minelittlepony/client/model/entity/ModelBreezie.java b/src/main/java/com/minelittlepony/client/model/entity/ModelBreezie.java index dddbc41f..a9b5252b 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/ModelBreezie.java +++ b/src/main/java/com/minelittlepony/client/model/entity/ModelBreezie.java @@ -8,11 +8,13 @@ import net.minecraft.util.math.MathHelper; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +import com.minelittlepony.mson.api.ModelContext; +import com.minelittlepony.mson.api.MsonModel; import com.minelittlepony.mson.api.model.MsonPart; import static com.minelittlepony.model.PonyModelConstants.PI; -public class ModelBreezie extends BipedEntityModel { +public class ModelBreezie extends BipedEntityModel implements MsonModel { private ModelPart neck; private ModelPart tail; @@ -26,6 +28,21 @@ public class ModelBreezie extends BipedEntityModel { textureHeight = 64; } + // broken bridge + @Override + public void accept(ModelPart t) { + super.method_22696(t); + } + + @Override + public void init(ModelContext context) { + neck = context.findByName("neck"); + tail = context.findByName("tail"); + tailStub = context.findByName("tail_stub"); + leftWing = context.findByName("left_wing"); + rightWing = context.findByName("right_wing"); + } + @Override public void setVisible(boolean visible) { super.setVisible(visible); diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/ModelBatpony.java b/src/main/java/com/minelittlepony/client/model/entity/race/ModelBatpony.java deleted file mode 100644 index 73cccf55..00000000 --- a/src/main/java/com/minelittlepony/client/model/entity/race/ModelBatpony.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.minelittlepony.client.model.entity.race; - -import net.minecraft.entity.LivingEntity; - -@Deprecated -public class ModelBatpony extends ModelPegasus { - public ModelBatpony(boolean smallArms) { - super(smallArms); - } -} diff --git a/src/main/java/com/minelittlepony/client/model/entity/race/PlayerModels.java b/src/main/java/com/minelittlepony/client/model/entity/race/PlayerModels.java index 6b0fc871..bcd563a4 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/race/PlayerModels.java +++ b/src/main/java/com/minelittlepony/client/model/entity/race/PlayerModels.java @@ -25,7 +25,7 @@ public enum PlayerModels { DEFAULT("default", "slim", Race.HUMAN, ModelEarthPony::new), EARTHPONY(Race.EARTH, ModelEarthPony::new), PEGASUS(Race.PEGASUS, ModelPegasus::new), - BATPONY(Race.BATPONY, ModelBatpony::new), + BATPONY(Race.BATPONY, ModelPegasus::new), UNICORN(Race.UNICORN, ModelUnicorn::new), ALICORN(Race.ALICORN, ModelAlicorn::new), CHANGELING(Race.CHANGELING, ModelChangeling::new), @@ -71,10 +71,12 @@ public enum PlayerModels { this.race = race; } + @Deprecated public PendingModel getPendingModel(boolean isSlim) { return isSlim ? slim : normal; } + @Deprecated public ModelWrapper getWrappedModel(boolean isSlim) { return getPendingModel(isSlim).getWrappedModel(isSlim); } @@ -84,13 +86,14 @@ public enum PlayerModels { } public RenderPonyPlayer createRenderer(EntityRenderDispatcher manager, boolean slimArms) { - return new RenderPonyPlayer(manager, slimArms, getWrappedModel(slimArms)); + return new RenderPonyPlayer(manager, getWrappedModel(slimArms)); } public static PlayerModels forRace(Race race) { return raceModelsMap.getOrDefault(race.getAlias(), DEFAULT); } + @Deprecated private final class PendingModel { @Nullable private ModelWrapper model; diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderEnderStallion.java b/src/main/java/com/minelittlepony/client/render/entity/RenderEnderStallion.java index 0fda09f4..69e96cd6 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderEnderStallion.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderEnderStallion.java @@ -1,12 +1,12 @@ package com.minelittlepony.client.render.entity; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.ModelEnderStallion; import com.minelittlepony.client.render.entity.feature.LayerEyeGlow; import com.minelittlepony.client.render.entity.feature.LayerHeldPonyItem; import com.minelittlepony.client.render.entity.feature.LayerHeldPonyItemMagical; import com.minelittlepony.client.render.entity.feature.LayerEyeGlow.IGlowingRenderer; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.block.BlockState; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.EntityRenderDispatcher; @@ -25,8 +25,8 @@ public class RenderEnderStallion extends RenderPonyMob ponyRenderer; - public RenderPonyGuardian(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { + public RenderPonyGuardian(EntityRenderDispatcher manager) { super(manager); features.clear(); - ponyRenderer = new Proxy(features, manager, new ModelGuardianPony()) { + ponyRenderer = new Proxy(features, manager, ModelType.GUARDIAN) { @Override public Identifier findTexture(GuardianEntity entity) { return SEAPONY; @@ -71,8 +71,8 @@ public class RenderPonyGuardian extends GuardianEntityRenderer { public static class Elder extends RenderPonyGuardian { - public Elder(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, context); + public Elder(EntityRenderDispatcher manager) { + super(manager); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyIllager.java b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyIllager.java index 5d066752..804f57cc 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyIllager.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyIllager.java @@ -1,10 +1,10 @@ package com.minelittlepony.client.render.entity; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.ModelIllagerPony; import com.minelittlepony.client.render.entity.feature.LayerHeldItemIllager; import com.minelittlepony.client.render.entity.feature.LayerHeldPonyItem; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.util.math.MatrixStack; @@ -23,7 +23,7 @@ public abstract class RenderPonyIllager extends RenderP public static final Identifier VINDICATOR = new Identifier("minelittlepony", "textures/entity/illager/vindicator_pony.png"); public RenderPonyIllager(EntityRenderDispatcher manager) { - super(manager, new ModelIllagerPony<>()); + super(manager, ModelType.ILLAGER); } @Override @@ -39,7 +39,7 @@ public abstract class RenderPonyIllager extends RenderP public static class Vindicator extends RenderPonyIllager { - public Vindicator(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { + public Vindicator(EntityRenderDispatcher manager) { super(manager); } @@ -52,7 +52,7 @@ public abstract class RenderPonyIllager extends RenderP public static class Evoker extends RenderPonyIllager { - public Evoker(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { + public Evoker(EntityRenderDispatcher manager) { super(manager); } @@ -64,7 +64,7 @@ public abstract class RenderPonyIllager extends RenderP public static class Illusionist extends RenderPonyIllager { - public Illusionist(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { + public Illusionist(EntityRenderDispatcher manager) { super(manager); } diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyMob.java b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyMob.java index f332faaf..e798f005 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyMob.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyMob.java @@ -14,6 +14,7 @@ import com.minelittlepony.client.render.entity.feature.LayerPonyArmor; import com.minelittlepony.client.render.entity.feature.LayerPonyCustomHead; import com.minelittlepony.client.render.entity.feature.LayerPonyElytra; import com.minelittlepony.model.IUnicorn; +import com.minelittlepony.mson.api.ModelKey; import com.minelittlepony.pony.IPony; import net.minecraft.client.model.ModelPart; @@ -33,8 +34,9 @@ public abstract class RenderPonyMob renderPony = new RenderPony<>(this); - public RenderPonyMob(EntityRenderDispatcher manager, M model) { - super(manager, model, 0.5F); + @SuppressWarnings("unchecked") + public RenderPonyMob(EntityRenderDispatcher manager, ModelKey key) { + super(manager, (M)key.createModel(), 0.5F); this.model = renderPony.setPonyModel(new ModelWrapper<>(model)); @@ -123,8 +125,8 @@ public abstract class RenderPonyMob & IUnicorn> extends RenderPonyMob { - public Caster(EntityRenderDispatcher manager, M model) { - super(manager, model); + public Caster(EntityRenderDispatcher manager, ModelKey key) { + super(manager, key); } @Override @@ -136,8 +138,8 @@ public abstract class RenderPonyMob & IPonyModel> extends RenderPonyMob { @SuppressWarnings({"rawtypes", "unchecked"}) - public Proxy(List exportedLayers, EntityRenderDispatcher manager, M model) { - super(manager, model); + public Proxy(List exportedLayers, EntityRenderDispatcher manager, ModelKey key) { + super(manager, key); exportedLayers.addAll(features); } diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyPillager.java b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyPillager.java index a397188e..6df20ca6 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyPillager.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyPillager.java @@ -1,10 +1,10 @@ package com.minelittlepony.client.render.entity; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.entity.mob.PillagerEntity; import net.minecraft.util.Identifier; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.ModelPillagerPony; import com.minelittlepony.client.render.entity.feature.LayerHeldItemIllager; import com.minelittlepony.client.render.entity.feature.LayerHeldPonyItem; @@ -13,8 +13,8 @@ public class RenderPonyPillager extends RenderPonyMob()); + public RenderPonyPillager(EntityRenderDispatcher manager) { + super(manager, ModelType.PILLAGER); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyPlayer.java b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyPlayer.java index 9886a552..419fff52 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyPlayer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyPlayer.java @@ -38,8 +38,8 @@ public class RenderPonyPlayer extends PlayerEntityRenderer implements IPonyRende protected final RenderPony> renderPony = new RenderPony<>(this); - public RenderPonyPlayer(EntityRenderDispatcher manager, boolean useSmallArms, ModelWrapper> model) { - super(manager, useSmallArms); + public RenderPonyPlayer(EntityRenderDispatcher manager, ModelWrapper> model) { + super(manager, false); this.model = renderPony.setPonyModel(model); diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderPonySkeleton.java b/src/main/java/com/minelittlepony/client/render/entity/RenderPonySkeleton.java index de714864..e59e88e9 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderPonySkeleton.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderPonySkeleton.java @@ -1,11 +1,11 @@ package com.minelittlepony.client.render.entity; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.ModelSkeletonPony; import com.minelittlepony.client.render.entity.feature.LayerHeldPonyItem; import com.minelittlepony.client.render.entity.feature.LayerHeldPonyItemMagical; import com.minelittlepony.client.render.entity.feature.LayerPonyStrayOverlay; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.mob.AbstractSkeletonEntity; @@ -19,8 +19,8 @@ public class RenderPonySkeleton extends public static final Identifier WITHER = new Identifier("minelittlepony", "textures/entity/skeleton/skeleton_wither_pony.png"); public static final Identifier STRAY = new Identifier("minelittlepony", "textures/entity/skeleton/stray_pony.png"); - public RenderPonySkeleton(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, new ModelSkeletonPony<>()); + public RenderPonySkeleton(EntityRenderDispatcher manager) { + super(manager, ModelType.SKELETON); } @Override @@ -35,8 +35,8 @@ public class RenderPonySkeleton extends public static class Stray extends RenderPonySkeleton { - public Stray(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, context); + public Stray(EntityRenderDispatcher manager) { + super(manager); addFeature(new LayerPonyStrayOverlay<>(this)); } @@ -48,8 +48,8 @@ public class RenderPonySkeleton extends public static class Wither extends RenderPonySkeleton { - public Wither(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, context); + public Wither(EntityRenderDispatcher manager) { + super(manager); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyTrader.java b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyTrader.java index b550eaf3..76e9c4c8 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyTrader.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyTrader.java @@ -1,19 +1,19 @@ package com.minelittlepony.client.render.entity; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.passive.WanderingTraderEntity; import net.minecraft.util.Identifier; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.race.ModelAlicorn; public class RenderPonyTrader extends RenderPonyMob.Caster> { public static final Identifier TEXTURE = new Identifier("minelittlepony", "textures/entity/wandering_trader_pony.png"); - public RenderPonyTrader(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, new ModelAlicorn<>(false)); + public RenderPonyTrader(EntityRenderDispatcher manager) { + super(manager, ModelType.ALICORN.steveKey); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyVex.java b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyVex.java index 2a24ced6..34526061 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyVex.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyVex.java @@ -1,12 +1,12 @@ package com.minelittlepony.client.render.entity; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.BipedEntityRenderer; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.mob.VexEntity; import net.minecraft.util.Identifier; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.ModelBreezie; /** @@ -17,8 +17,8 @@ public class RenderPonyVex extends BipedEntityRenderer(), 0.3F); + public RenderPonyVex(EntityRenderDispatcher manager) { + super(manager, ModelType.BREEZIE.createModel(), 0.3F); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyWitch.java b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyWitch.java index a5ba6deb..8338ddc5 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyWitch.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyWitch.java @@ -1,9 +1,9 @@ package com.minelittlepony.client.render.entity; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.ModelWitchPony; import com.minelittlepony.client.render.entity.feature.LayerHeldPonyItem; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.util.math.MatrixStack; @@ -17,8 +17,8 @@ public class RenderPonyWitch extends RenderPonyMob private static final Identifier WITCH_TEXTURES = new Identifier("minelittlepony", "textures/entity/witch_pony.png"); - public RenderPonyWitch(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, new ModelWitchPony()); + public RenderPonyWitch(EntityRenderDispatcher manager) { + super(manager, ModelType.WITCH); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyZombie.java b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyZombie.java index 285204d1..9c12b329 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderPonyZombie.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderPonyZombie.java @@ -1,6 +1,5 @@ package com.minelittlepony.client.render.entity; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.mob.DrownedEntity; @@ -10,6 +9,7 @@ import net.minecraft.entity.mob.ZombieEntity; import net.minecraft.entity.mob.ZombiePigmanEntity; import net.minecraft.util.Identifier; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.ModelZombiePony; public class RenderPonyZombie extends RenderPonyMob.Caster> { @@ -19,8 +19,8 @@ public class RenderPonyZombie extends RenderPonyMob public static final Identifier PIGMAN = new Identifier("minelittlepony", "textures/entity/zombie/zombie_pigman_pony.png"); public static final Identifier DROWNED = new Identifier("minelittlepony", "textures/entity/zombie/drowned_pony.png"); - public RenderPonyZombie(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, new ModelZombiePony<>()); + public RenderPonyZombie(EntityRenderDispatcher manager) { + super(manager, ModelType.ZOMBIE); } @Override @@ -30,8 +30,8 @@ public class RenderPonyZombie extends RenderPonyMob public static class Drowned extends RenderPonyZombie { - public Drowned(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, context); + public Drowned(EntityRenderDispatcher manager) { + super(manager); } @Override @@ -42,8 +42,8 @@ public class RenderPonyZombie extends RenderPonyMob public static class Pigman extends RenderPonyZombie { - public Pigman(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, context); + public Pigman(EntityRenderDispatcher manager) { + super(manager); } @Override @@ -54,8 +54,8 @@ public class RenderPonyZombie extends RenderPonyMob public static class Husk extends RenderPonyZombie { - public Husk(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, context); + public Husk(EntityRenderDispatcher manager) { + super(manager); } @Override @@ -73,8 +73,8 @@ public class RenderPonyZombie extends RenderPonyMob public static class Giant extends RenderPonyMob.Caster> { - public Giant(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, new ModelZombiePony<>()); + public Giant(EntityRenderDispatcher manager) { + super(manager, ModelType.ZOMBIE); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/RenderSeaponyPlayer.java b/src/main/java/com/minelittlepony/client/render/entity/RenderSeaponyPlayer.java index d26255b4..c2f2568f 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/RenderSeaponyPlayer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/RenderSeaponyPlayer.java @@ -17,7 +17,7 @@ public class RenderSeaponyPlayer extends RenderPonyPlayer { public RenderSeaponyPlayer(EntityRenderDispatcher manager, boolean useSmallArms, ModelWrapper> model, ModelWrapper> alternate) { - super(manager, useSmallArms, model); + super(manager, model); seapony = alternate; normalPony = model; diff --git a/src/main/java/com/minelittlepony/client/render/entity/villager/AbstractVillagerRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/villager/AbstractVillagerRenderer.java index 7723b02a..da5081ae 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/villager/AbstractVillagerRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/villager/AbstractVillagerRenderer.java @@ -13,6 +13,7 @@ import com.minelittlepony.client.render.entity.RenderPonyMob; import com.minelittlepony.client.render.entity.feature.LayerGear; import com.minelittlepony.model.IUnicorn; import com.minelittlepony.model.gear.IGear; +import com.minelittlepony.mson.api.ModelKey; import com.minelittlepony.util.resources.ITextureSupplier; abstract class AbstractVillagerRenderer< @@ -23,8 +24,8 @@ abstract class AbstractVillagerRenderer< private final String entityType; - public AbstractVillagerRenderer(EntityRenderDispatcher manager, M model, String type, ITextureSupplier formatter) { - super(manager, model); + public AbstractVillagerRenderer(EntityRenderDispatcher manager, ModelKey key, String type, ITextureSupplier formatter) { + super(manager, key); entityType = type; baseTextures = new PonyTextures<>(formatter); diff --git a/src/main/java/com/minelittlepony/client/render/entity/villager/RenderPonyVillager.java b/src/main/java/com/minelittlepony/client/render/entity/villager/RenderPonyVillager.java index 924ad46b..e4a989d8 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/villager/RenderPonyVillager.java +++ b/src/main/java/com/minelittlepony/client/render/entity/villager/RenderPonyVillager.java @@ -1,9 +1,9 @@ package com.minelittlepony.client.render.entity.villager; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.ModelVillagerPony; import com.minelittlepony.util.resources.ITextureSupplier; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.passive.VillagerEntity; @@ -13,8 +13,8 @@ public class RenderPonyVillager extends AbstractVillagerRenderer FORMATTER = ITextureSupplier.formatted("minelittlepony", "textures/entity/villager/%s.png"); - public RenderPonyVillager(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, new ModelVillagerPony<>(), TYPE, FORMATTER); + public RenderPonyVillager(EntityRenderDispatcher manager) { + super(manager, ModelType.VILLAGER, TYPE, FORMATTER); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/villager/RenderPonyZombieVillager.java b/src/main/java/com/minelittlepony/client/render/entity/villager/RenderPonyZombieVillager.java index d8cf1298..b6d1dfc1 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/villager/RenderPonyZombieVillager.java +++ b/src/main/java/com/minelittlepony/client/render/entity/villager/RenderPonyZombieVillager.java @@ -1,9 +1,9 @@ package com.minelittlepony.client.render.entity.villager; +import com.minelittlepony.client.model.ModelType; import com.minelittlepony.client.model.entity.ModelZombieVillagerPony; import com.minelittlepony.util.resources.ITextureSupplier; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.mob.ZombieVillagerEntity; @@ -13,8 +13,8 @@ public class RenderPonyZombieVillager extends AbstractVillagerRenderer FORMATTER = ITextureSupplier.formatted("minelittlepony", "textures/entity/zombie_villager/zombie_%s.png"); - public RenderPonyZombieVillager(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { - super(manager, new ModelZombieVillagerPony(), TYPE, FORMATTER); + public RenderPonyZombieVillager(EntityRenderDispatcher manager) { + super(manager, ModelType.ZOMBIE_VILLAGER, TYPE, FORMATTER); } @Override