mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-24 16:46:04 +00:00
f41d5ac6d0
Previously every visible plate polled C_Spell.UnitCastingInfo each throttled tick just to detect casts. Now cast state is event-driven: - SPELL_START_OTHER (nampower) stamps a per-GUID castState cache (spellId, timing, channel flag from spellType); SPELL_FAILED_OTHER clears it; normal completion expires at endTime. GetCastInfo just reads the cache, so all call sites (castbar update, non-target detection, casting name-color) stop polling. - plateByGuid routes events to plates in O(1) and bounds the cache to on-screen casters; NAME_PLATE_UNIT_ADDED seeds an already-casting unit with one poll. - The vestigial nameplate.castUpdate flag now fires on cast start to bypass the throttle for an immediate bar. With the poll gone, per-tick work is a cache read + SetValue, so the dedicated target castbar frame now runs unthrottled (every frame) for the smoothest sweep, and the non-target nameplates_castbar default rises 50 -> 100 FPS. Known limits: other-unit cast pushback isn't reported by nampower, and a mob-cancelled channel with no fail event lingers until endTime.