fix item macros icons when swapped

This commit is contained in:
Jrc13245
2025-11-12 16:19:08 -05:00
parent a3b8848449
commit 642e58598a
+30 -2
View File
@@ -2386,6 +2386,20 @@ function GetActionTexture(slot)
local actions = CleveRoids.GetAction(slot)
if actions and (actions.active or actions.tooltip) then
-- Prioritize active action, fall back to tooltip
local a = actions.active or actions.tooltip
-- NEW: For slot-based actions, always fetch current equipment texture
local slotId = tonumber(a.action)
if slotId and slotId >= 1 and slotId <= 19 then
local currentTexture = GetInventoryItemTexture("player", slotId)
if currentTexture then
return currentTexture
end
-- No item equipped in that slot, return unknown texture
return CleveRoids.unknownTexture
end
local proxySlot = (actions.active and actions.active.spell) and CleveRoids.GetProxyActionSlot(actions.active.spell.name)
if proxySlot and CleveRoids.Hooks.GetActionTexture(proxySlot) ~= actions.active.spell.texture then
return CleveRoids.Hooks.GetActionTexture(proxySlot)
@@ -2806,8 +2820,9 @@ function CleveRoids.Frame:BAG_UPDATE()
-- Directly clear all relevant caches and force a UI refresh for all buttons.
CleveRoids.Actions = {}
--CleveRoids.Macros = {}
CleveRoids.Macros = {}
--CleveRoids.ParsedMsg = {}
CleveRoids.IndexActionBars()
if CleveRoidMacros.realtime == 0 then
CleveRoids.QueueActionUpdate()
end
@@ -2816,7 +2831,20 @@ end
function CleveRoids.Frame:UNIT_INVENTORY_CHANGED()
if arg1 ~= "player" then return end
CleveRoids.Frame:BAG_UPDATE()
-- Equipment changes need immediate response, bypass BAG_UPDATE throttle
local now = GetTime()
CleveRoids.lastItemIndexTime = now
CleveRoids.IndexItems()
-- Directly clear all relevant caches and force a UI refresh for all buttons
CleveRoids.Actions = {}
CleveRoids.Macros = {}
CleveRoids.IndexActionBars()
if CleveRoidMacros.realtime == 0 then
CleveRoids.QueueActionUpdate()
end
end
function CleveRoids.Frame:START_AUTOREPEAT_SPELL()