From ad74d320beb17f7a4dd011cba540debbd9cec196 Mon Sep 17 00:00:00 2001 From: NotEvil Date: Fri, 17 Apr 2026 01:35:25 +0200 Subject: [PATCH] feat(gltf): add suggestBoneName + knownBoneNames helpers to GltfBoneMapper --- .../remake/client/gltf/GltfBoneMapper.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/com/tiedup/remake/client/gltf/GltfBoneMapper.java b/src/main/java/com/tiedup/remake/client/gltf/GltfBoneMapper.java index 2982ea0..8fbec1f 100644 --- a/src/main/java/com/tiedup/remake/client/gltf/GltfBoneMapper.java +++ b/src/main/java/com/tiedup/remake/client/gltf/GltfBoneMapper.java @@ -7,6 +7,7 @@ import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import org.jetbrains.annotations.Nullable; /** * Maps glTF bone names to Minecraft HumanoidModel parts. @@ -110,4 +111,25 @@ public final class GltfBoneMapper { public static boolean isKnownBone(String boneName) { return BONE_TO_PART.containsKey(boneName); } + + /** + * Get all known bone names for validation/suggestion purposes. + */ + public static Set knownBoneNames() { + return BONE_TO_PART.keySet(); + } + + /** + * Suggest a known bone name for a case-insensitive match. + * Returns null if no case-insensitive match is found. + */ + @Nullable + public static String suggestBoneName(String unknownBone) { + for (String known : BONE_TO_PART.keySet()) { + if (known.equalsIgnoreCase(unknownBone)) { + return known; + } + } + return null; + } }