diff --git a/game/client/src/main/java/net/minecraft/client/entity/ClientSkinVariantList.java b/game/client/src/main/java/net/minecraft/client/entity/ClientSkinVariantList.java index 04e024314..7dcd9bc0d 100644 --- a/game/client/src/main/java/net/minecraft/client/entity/ClientSkinVariantList.java +++ b/game/client/src/main/java/net/minecraft/client/entity/ClientSkinVariantList.java @@ -68,6 +68,14 @@ public class ClientSkinVariantList extends SkinVariantList { return null; } + public int getSkinTextureLength(@Nullable String variantJsonPath){ + EntityVariants variant = this.getEntityVariants(variantJsonPath); + if(variant == null){ + return -1; + } + return variant.getSkinTextureLength(); + } + @Override public int nextSkinVariant(@Nullable final String variantJsonPath, final int skinIndex) { final EntityVariants variants = getEntityVariants(variantJsonPath); @@ -119,7 +127,7 @@ public class ClientSkinVariantList extends SkinVariantList { return null; } - protected static class EntityVariants { + public static class EntityVariants { private final String @Nullable [] indexedSkins; private final VariantEntry @Nullable [] variantEntries; @@ -195,7 +203,17 @@ public class ClientSkinVariantList extends SkinVariantList { } } - protected static class VariantEntry { + public int getSkinTextureLength(){ + if(this.variantEntries == null && this.indexedSkins == null){ + return -1; + } + if(this.variantEntries == null){ + return this.indexedSkins.length; + } + return this.variantEntries.length; + } + + public static class VariantEntry { public final String textureKey; public final double weight; public VariantEntry(final String key, final double weight) {