mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-22 15:46:56 +00:00
ed06968fa3
* nameplates: drive discovery + GUID lookup via C_NamePlate ClassicAPI now provides the modern C_NamePlate API and the matching NAME_PLATE_CREATED / NAME_PLATE_UNIT_ADDED / NAME_PLATE_UNIT_REMOVED events. Replace the WorldFrame:GetChildren polling + manual GUID dictionary with event-driven plumbing. - Drop the per-tick WorldFrame:GetNumChildren / GetChildren scan - Delete IsNamePlate() border-texture filter (events only deliver nameplate frames) - Delete the guidRegistry table + its OnShow/OnUpdate maintenance; every lookup now goes through C_NamePlate.GetNamePlateForGUID - Move per-GUID cache cleanup (debuffCache / threatMemory / combatColorCache / libdebuff_casts) from the OnUpdate visibility scan to a NAME_PLATE_UNIT_REMOVED handler — fires exactly once per unit going out of range - NAME_PLATE_CREATED drives nameplates.OnCreate; NAME_PLATE_UNIT_ADDED sets cachedGuid and drives nameplates.OnShow (so OnCreate no longer calls OnShow directly and no longer HookScripts the parent) - visiblePlateCount uses table.getn(C_NamePlate.GetNamePlates()) Net -64 lines, with a meaningful reduction in per-tick CPU (no more WorldFrame child iteration + region/texture filter every 50ms). * nameplates: switch UNIT_ADDED/REMOVED handlers to nameplateN tokens ClassicAPI's NAME_PLATE_UNIT_ADDED / _REMOVED events now ship the "nameplateN" unit token as arg1 (matching modern WoW) instead of the GUID string. - UNIT_ADDED: resolve plate via C_NamePlate.GetNamePlateForUnit(arg1); derive the cache-key GUID via UnitGUID(arg1) - UNIT_REMOVED: same lookup pattern; compute UnitGUID(arg1) inside the handler before the slot recycles (per docs guarantee) The other six GetNamePlateForGUID call sites (libdebuff aura callbacks, UNIT_FLAGS_GUID, PLAYER_TARGET_CHANGED, combo-point handler, castbar frame) stay on the GUID flavor — they receive real GUIDs from other event paths. --------- Co-authored-by: Brues <5278969+brues-code@users.noreply.github.com>