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 761fc12f..afe9013c 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/SeaponyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/SeaponyRenderer.java @@ -32,11 +32,11 @@ public class SeaponyRenderer extends GuardianEntityRenderer { } public static SeaponyRenderer guardian(EntityRendererFactory.Context context) { - return new SeaponyRenderer(context, TextureSupplier.ofPool(SEAPONY_TEXTURES, TextureSupplier.of(SEAPONY)), 1); + return new SeaponyRenderer(context, TextureSupplier.ofVariations(SEAPONY_TEXTURES, TextureSupplier.of(SEAPONY)), 1); } public static SeaponyRenderer elder(EntityRendererFactory.Context context) { - return new SeaponyRenderer(context, TextureSupplier.ofPool(ELDER_SEAPONY_TEXTURES, TextureSupplier.of(SEAPONY)), ElderGuardianEntity.SCALE); + return new SeaponyRenderer(context, TextureSupplier.ofVariations(ELDER_SEAPONY_TEXTURES, TextureSupplier.of(ELDER_SEAPONY)), ElderGuardianEntity.SCALE); } @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/npc/textures/TextureSupplier.java b/src/main/java/com/minelittlepony/client/render/entity/npc/textures/TextureSupplier.java index cb329d6a..b71f600e 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/npc/textures/TextureSupplier.java +++ b/src/main/java/com/minelittlepony/client/render/entity/npc/textures/TextureSupplier.java @@ -25,6 +25,12 @@ public interface TextureSupplier extends Function { return key -> new Identifier(domain, String.format(path, key)); } + static TextureSupplier ofVariations(Identifier poolId, TextureSupplier fallback) { + return entity -> { + return MineLittlePony.getInstance().getVariatedTextures().get(poolId).getId(entity.getUuid()).orElse(fallback.apply(entity)); + }; + } + static TextureSupplier ofPool(Identifier poolId, TextureSupplier fallback) { final Function cache = FunctionUtil.memoize(entity -> { return MineLittlePony.getInstance().getVariatedTextures() diff --git a/src/main/resources/assets/minelittlepony/textures/entity/elder_guardian/blueball.png b/src/main/resources/assets/minelittlepony/textures/entity/elder_guardian/blueball.png index 4fa995cb..45ffbecc 100644 Binary files a/src/main/resources/assets/minelittlepony/textures/entity/elder_guardian/blueball.png and b/src/main/resources/assets/minelittlepony/textures/entity/elder_guardian/blueball.png differ diff --git a/src/main/resources/assets/minelittlepony/textures/entity/guardian/poppy.png b/src/main/resources/assets/minelittlepony/textures/entity/guardian/poppy.png new file mode 100644 index 00000000..693481d2 Binary files /dev/null and b/src/main/resources/assets/minelittlepony/textures/entity/guardian/poppy.png differ diff --git a/src/main/resources/assets/minelittlepony/textures/entity/guardian/screwy.png b/src/main/resources/assets/minelittlepony/textures/entity/guardian/screwy.png new file mode 100644 index 00000000..df6bf283 Binary files /dev/null and b/src/main/resources/assets/minelittlepony/textures/entity/guardian/screwy.png differ