v1.2: management GUI, unload-proof rigs
mat-plugin:
- GUI: /mat with no argument opens a chest-menu manager (gui/GuiManager +
MatMenuHolder). Main menu lists every spawned rig (cache, world, position,
facing, scale, current animation); clicking one opens its config menu
(play/stop/pause/resume/reset/pose, scale, teleport to me, rotation, rename,
paint mode, shift-click remove). A spawn menu lists caches and jumps straight
to the new rig's config page. Free-form values (scale, name, coords, pose)
are collected via one-shot chat prompts.
- Rigs no longer self-destruct when their chunk unloads (e.g. on player
disconnect), which made them non-persistent: EntityManager pins each rig's
chunk with a plugin chunk ticket (released on remove when the chunk is empty
of rigs, moved across chunk boundaries on teleport, stale tickets cleared on
enable before restore). EntityListener now listens to EntityRemoveEvent and
ignores Cause.UNLOAD; real removals tear down one tick deferred (avoids the
'processing section status updates' warning) and re-resolve the rig by uuid
so our own removeEntity does not re-enter.
v1.1: tolerant cache parsing, correct rotation/scale, lighting, rig persistence
mat-plugin:
- CacheReader: tolerant deserializer for real Blockbench exports - loose root
elements (bare uuid strings in outliner) and animations stored as an object.
- EntityManager: interpolate rotation in Euler space instead of slerping
quaternions, so >=180deg / 360deg spins (ferris wheel) animate instead of
collapsing to identity or jittering.
- Build the bind pose with the same matrix pipeline as the animator, so the
spawn pose matches t=0 and nested outliner/element rotations compose correctly.
- extractRotation: rebuild zero-thickness (planar) axes from the cross product
of the others - fixes dark/jittering flat parts; raytrace gives planar parts a
minimum pick thickness so paint mode can hit them.
- Lighting: display-block-light / display-sky-light brightness override.
- Persistence: persist-rigs saves rigs (and the playing or held animation) to
rigs.yml, restores them on restart/reload, tags entities and cleans up orphans.
- EditModeManager: glow outline no longer enlarges the copy.
