Files
moonwell-client-core/docs
Sam Sung c4236fb4c1 Action usability follows each packet, as 1.12.1's cache does (#2403)
`IsUsableAction` answered from a list pushed per frame. So a `UNIT_MANA` or `ACTIONBAR_UPDATE_USABLE` listener read the frame's last power, and after drinking the last potion, the slot's change listener still saw it usable.

1.12.1 answers `IsUsableAction` from a usable cache (`0x4e5230`). The slot write `0x4e58e0` fills it, and eight field watchers refresh it inside each packet (`0x4b31c0` → `0x4e5c00`). `IsCurrentAction`'s form arm reads the live form byte (`0x4e558b`), and `IsEquippedAction` walks the worn slots (`0x622270`).

benilla now keeps that cache, refreshed at the same eight watchers and stored by the recount. The form and equipped reads go live through the call host, and items resolve through the per-packet views.

Tests: 14 getters agree live against snapshot across six slots, plus the usable, form, equipped and last-potion cases that fail on main. A refresh costs about 1% of a raid storm frame.

Part of #2217

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 18:03:34 +07:00
..