diff --git a/src/main/java/com/minelittlepony/api/model/gear/IGear.java b/src/main/java/com/minelittlepony/api/model/gear/IGear.java index 1b996317..60ddd970 100644 --- a/src/main/java/com/minelittlepony/api/model/gear/IGear.java +++ b/src/main/java/com/minelittlepony/api/model/gear/IGear.java @@ -52,6 +52,9 @@ public interface IGear { */ Identifier getTexture(T entity, Context context); + /** + * Gets the layer used to render this piece of gear. + */ default RenderLayer getLayer(T entity, Context context) { return RenderLayer.getEntityTranslucent(getTexture(entity, context)); } diff --git a/src/main/java/com/minelittlepony/client/render/IPonyRenderContext.java b/src/main/java/com/minelittlepony/client/render/IPonyRenderContext.java index 8f025f09..5900b9b0 100644 --- a/src/main/java/com/minelittlepony/client/render/IPonyRenderContext.java +++ b/src/main/java/com/minelittlepony/client/render/IPonyRenderContext.java @@ -4,7 +4,6 @@ import com.minelittlepony.api.model.BodyPart; import com.minelittlepony.api.model.PonyModelConstants; import com.minelittlepony.api.model.gear.IGear; import com.minelittlepony.api.pony.IPony; -import com.minelittlepony.api.pony.meta.Wearable; import com.minelittlepony.client.model.IPonyModel; import com.minelittlepony.client.model.ModelWrapper; import com.minelittlepony.util.MathUtil; @@ -12,7 +11,6 @@ import com.minelittlepony.util.MathUtil; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; -import net.minecraft.util.Identifier; public interface IPonyRenderContext & IPonyModel> extends PonyModelConstants, IGear.Context { @@ -25,13 +23,6 @@ public interface IPonyRenderContext getInternalRenderer(); - Identifier findTexture(T entity); - - @Override - default Identifier getDefaultTexture(T entity, Wearable wearable) { - return findTexture(entity); - } - /** * Called by riders to have their transportation adjust their position. */ diff --git a/src/main/java/com/minelittlepony/client/render/entity/EnderStallionRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/EnderStallionRenderer.java index 57346f73..df0d4fd5 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/EnderStallionRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/EnderStallionRenderer.java @@ -52,7 +52,7 @@ public class EnderStallionRenderer extends PonyRenderer & IPonyModel> extends MobEntityRenderer implements IPonyRenderContext { @@ -109,11 +110,10 @@ public abstract class PonyRenderer stack.pop(); } - @Deprecated @Override - @NotNull - public final Identifier getTexture(T entity) { - return findTexture(entity); + public Identifier getDefaultTexture(T entity, Wearable wearable) { + Identifier texture = getTexture(entity); + return new Identifier(texture.getNamespace(), texture.getPath().split("\\.")[0] + "_" + wearable.name().toLowerCase(Locale.ROOT) + ".png"); } @Override @@ -123,7 +123,7 @@ public abstract class PonyRenderer @Override public IPony getEntityPony(T entity) { - return MineLittlePony.getInstance().getManager().getPony(findTexture(entity)); + return MineLittlePony.getInstance().getManager().getPony(getTexture(entity)); } public abstract static class Caster> extends PonyRenderer { @@ -152,9 +152,5 @@ public abstract class PonyRenderer features.clear(); super.addLayers(context); } - - public final Identifier getTextureFor(T entity) { - return super.getTexture(entity); - } } } diff --git a/src/main/java/com/minelittlepony/client/render/entity/SeaponyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/SeaponyRenderer.java index dfc8bc43..9cb6ae26 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/SeaponyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/SeaponyRenderer.java @@ -30,7 +30,7 @@ public class SeaponyRenderer extends GuardianEntityRenderer { features.clear(); ponyRenderer = new Proxy(features, context, ModelType.GUARDIAN) { @Override - public Identifier findTexture(GuardianEntity entity) { + public Identifier getTexture(GuardianEntity entity) { return SEAPONY; } @@ -45,7 +45,7 @@ public class SeaponyRenderer extends GuardianEntityRenderer { @Override @NotNull public final Identifier getTexture(GuardianEntity entity) { - return ponyRenderer.getTextureFor(entity); + return ponyRenderer.getTexture(entity); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/SkeleponyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/SkeleponyRenderer.java index 7f6f840d..a55f7bd2 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/SkeleponyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/SkeleponyRenderer.java @@ -24,7 +24,7 @@ public class SkeleponyRenderer extends } @Override - public Identifier findTexture(Skeleton entity) { + public Identifier getTexture(Skeleton entity) { return SKELETON; } @@ -41,7 +41,7 @@ public class SkeleponyRenderer extends } @Override - public Identifier findTexture(StrayEntity entity) { + public Identifier getTexture(StrayEntity entity) { return STRAY; } } @@ -53,7 +53,7 @@ public class SkeleponyRenderer extends } @Override - public Identifier findTexture(WitherSkeletonEntity entity) { + public Identifier getTexture(WitherSkeletonEntity entity) { return WITHER; } diff --git a/src/main/java/com/minelittlepony/client/render/entity/WitchRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/WitchRenderer.java index 6f71d812..c39bcdf6 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/WitchRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/WitchRenderer.java @@ -39,7 +39,7 @@ public class WitchRenderer extends PonyRenderer { } @Override - public Identifier findTexture(WitchEntity entity) { + public Identifier getTexture(WitchEntity entity) { return WITCH_TEXTURES; } } diff --git a/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java index 0200ad3c..981f5774 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java @@ -22,7 +22,7 @@ public class ZomponyRenderer extends PonyRenderer.C } @Override - public Identifier findTexture(Zombie entity) { + public Identifier getTexture(Zombie entity) { return ZOMBIE; } @@ -33,7 +33,7 @@ public class ZomponyRenderer extends PonyRenderer.C } @Override - public Identifier findTexture(DrownedEntity entity) { + public Identifier getTexture(DrownedEntity entity) { return DROWNED; } } @@ -51,7 +51,7 @@ public class ZomponyRenderer extends PonyRenderer.C } @Override - public Identifier findTexture(HuskEntity entity) { + public Identifier getTexture(HuskEntity entity) { return HUSK; } @@ -70,7 +70,7 @@ public class ZomponyRenderer extends PonyRenderer.C } @Override - public Identifier findTexture(GiantEntity entity) { + public Identifier getTexture(GiantEntity entity) { return ZOMBIE; } } 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 79667a98..dca8d303 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 @@ -89,7 +89,7 @@ public class GearFeature & IPon private void renderGear(M model, T entity, IGear gear, MatrixStack stack, VertexConsumerProvider renderContext, int lightUv, float limbDistance, float limbAngle, float tickDelta) { gear.pose(model, entity, model.getAttributes().isGoingFast, entity.getUuid(), limbDistance, limbAngle, model.getWobbleAmount(), tickDelta); - gear.render(stack, renderContext.getBuffer(RenderLayer.getEntityTranslucent(gear.getTexture(entity, getContext()))), lightUv, OverlayTexture.DEFAULT_UV, 1, 1, 1, 1, entity.getUuid()); + gear.render(stack, renderContext.getBuffer(gear.getLayer(entity, getContext())), lightUv, OverlayTexture.DEFAULT_UV, 1, 1, 1, 1, entity.getUuid()); } static record Entry(IGear gear, Wearable wearable) {} 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 23e78e14..a64cb666 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 @@ -78,11 +78,11 @@ abstract class AbstractNpcRenderer if (wearable == Wearable.SADDLE_BAGS) { return clothing.createTexture(villager, "accessory"); } - return super.getDefaultTexture(villager, wearable); + return getTexture(villager); } @Override - public Identifier findTexture(T villager) { + public Identifier getTexture(T villager) { return baseTextures.supplyTexture(villager); } } diff --git a/src/main/java/com/minelittlepony/client/render/entity/npc/IllagerPonyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/npc/IllagerPonyRenderer.java index 55f8fd57..f42bc42e 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/npc/IllagerPonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/npc/IllagerPonyRenderer.java @@ -46,7 +46,7 @@ public abstract class IllagerPonyRenderer extends PonyR } @Override - public Identifier findTexture(VindicatorEntity entity) { + public Identifier getTexture(VindicatorEntity entity) { return VINDICATOR; } } @@ -58,7 +58,7 @@ public abstract class IllagerPonyRenderer extends PonyR } @Override - public Identifier findTexture(EvokerEntity entity) { + public Identifier getTexture(EvokerEntity entity) { return EVOKER; } } @@ -70,7 +70,7 @@ public abstract class IllagerPonyRenderer extends PonyR } @Override - public Identifier findTexture(IllusionerEntity entity) { + public Identifier getTexture(IllusionerEntity entity) { return ILLUSIONIST; } diff --git a/src/main/java/com/minelittlepony/client/render/entity/npc/PillagerRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/npc/PillagerRenderer.java index fbe17e5c..07d646c4 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/npc/PillagerRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/npc/PillagerRenderer.java @@ -19,7 +19,7 @@ public class PillagerRenderer extends PonyRenderer