Adds the three drops as Stonecutter versions (26.1's jar also accepts
its hotfixes). loom-back-compat already picks the plain Loom for 26.x;
the testmod's remap configurations are only created where there's
something to remap, and the foojay resolver downloads the Java 25
toolchain these versions need.
- 26.3 renamed PoseStack.mulPose(Quaternionfc) to rotate.
- The testmod follows Fabric API's renames: ClientCommands (26.1),
getClientLevel (26.1) and getConnection (26.2) for waiting on chunks.
- 26.2 replaced Options.hideGui with the HUD's toggle, so the gametest
toggles it through a helper.
The screenshot gametest passes on 26.1, 26.2 and 26.3, and the bent
limbs match 1.21.11's.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
tools/emotecraft/convert.py turns Emotecraft's binary .emotecraft files (its network packet, with
the animation in player-animator's legacy format) into the Emotecraft JSON EmotecraftLoader reads.
Converting a few community emotes showed the loader bent the torso the wrong way: Get the Griddy,
which hunches forward, arched back. Emotecraft bends limbs the other way from us, but not the torso,
whose bend is anchored at the hips here and so already turned round. The loader now keeps the
torso's bend sign, and gives the whole player's bend to the torso, as Emotecraft does. fit.py writes
torso bends to match, so re-exported captures look the same.
Bumps the version to 0.1.1 for the fix.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- core/: Minecraft-independent animation model (Bone, BoneTransform with
bend fields, Pose, Animation, AnimationPlayer) with JUnit tests.
- src/main: Fabric mod built for 1.21.4-1.21.11 with Stonecutter on
Mojang mappings. Samples each player's pose into its render state and
applies it at the end of HumanoidModel.setupAnim (armor follows too).
- src/testmod: dev-only tester with /emotes play|stop|info and a mixin
audit on startup.
- Publishing to the saturnclientmc Gitea Maven registry as
org.saturnclient:emotes-core and emotes-fabric:<v>+<mc>.
Loom is pinned to 1.17 because 1.18 needs a Java 25 JVM.
Co-Authored-By: Claude Opus 5.5 <[email protected]>