mirror of
https://github.com/brues-code/SuperCleveRoidMacros.git
synced 2026-09-16 03:38:00 +00:00
Migrate to ClassicAPI for macro display, auras and timing
Squash of the classicapi_next branch (10 commits). ClassicAPI is now a hard requirement, and the Lua-side reimplementations it supersedes are gone: net -1087 lines across 12 files. Macro display: resolved macro actions are published through C_Macro.SetMacroDisplay, so the client draws macro buttons and the action-bar function overrides this addon used to install are removed. Ownership is per macro -- ClassicAPI keeps the macros we never claim. Auras and timing: ClassicAPI is the source of truth for non-player aura timing via the positional C_UnitAuras.UnitAura, replacing the write-only buff tracking tables and the overflow-slot fallback. Cleanup: the hasPfUI76 flag and the pfUI 7.6 branches it gated, two silently-shadowed code paths, and per-call allocations in the event and publish paths (SPELL_CAST_EVENT merged). Packaging moves to brues-code/packager@vCAPI. Macro syntax: a clause may carry a leading run of [group] blocks sharing one action, Blizzard-style -- groups are OR'd, first pass wins, and [] always passes. The ;-separated form is unchanged and mixes freely. @focus clauses with no focus set now fail quietly instead of printing "Invalid target" on the way past.
This commit is contained in:
@@ -24,7 +24,22 @@ CleveRoids.hasSuperwow = SetAutoloot and true or false
|
||||
CleveRoids.hasTurtle = (type(_G.TURTLE_WOW_VERSION) ~= "nil")
|
||||
CleveRoids.supported = CleveRoids.hasTurtle
|
||||
|
||||
-- ClassicAPI macro display (C_Macro.SetMacroDisplay): hand ClassicAPI the resolved
|
||||
-- action per macro instead of replacing the action-bar globals in Lua, so the icon,
|
||||
-- tooltip, cooldown sweep, range and usable state all come from the client -- including
|
||||
-- the drag cursor and the macro window grid, which Lua cannot reach.
|
||||
--
|
||||
-- Feature-detect rather than version-check: the API is unreleased, so
|
||||
-- CLASSIC_API_VERSION reports the dev sentinel. ClassicAPI stands down from macro
|
||||
-- display entirely when it sees this addon loaded; ClassicAPIMacroDisplay is what
|
||||
-- tells it we drive it instead. A fork that leaves the flag unset keeps the old
|
||||
-- behavior -- both must never drive the same buttons.
|
||||
CleveRoids.useClassicAPIDisplay =
|
||||
(type(C_Macro) == "table" and C_Macro.SetMacroDisplay ~= nil) and true or false
|
||||
CleveRoids.ClassicAPIMacroDisplay = CleveRoids.useClassicAPIDisplay
|
||||
|
||||
CleveRoids.ParsedMsg = {}
|
||||
CleveRoids.ExpandedGroups = {}
|
||||
CleveRoids.Items = {}
|
||||
CleveRoids.Spells = {}
|
||||
CleveRoids.PetSpells = {}
|
||||
@@ -43,13 +58,11 @@ CleveRoids.unknownTexture = "Interface\\Icons\\INV_Misc_QuestionMark"
|
||||
|
||||
CleveRoids.spell_tracking = {}
|
||||
|
||||
-- GUID-based cast tracking (populated by pfUI 7.6 or standalone SPELL_START events)
|
||||
-- Format: [casterGuid] = {spellID, spellName, icon, startTime, duration, endTime}
|
||||
-- GUID-based cast tracking, populated from our own SPELL_START handlers and pruned
|
||||
-- in OnUpdate. Format: [casterGuid] = {spellID, spellName, icon, startTime, duration,
|
||||
-- endTime}
|
||||
CleveRoids.castTracking = {}
|
||||
|
||||
-- pfUI 7.6+ with Nampower 2.31.0+ detected (GUID-based cast tracking available)
|
||||
CleveRoids.hasPfUI76 = false
|
||||
|
||||
-- Combo point tracking (initialized early for /cast hook)
|
||||
CleveRoids.lastComboPoints = 0
|
||||
CleveRoids.lastComboPointsTime = 0
|
||||
|
||||
Reference in New Issue
Block a user