mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-22 07:36:56 +00:00
3fe072c594
pfUI's Lua hooksecurefunc lived in pfUI.env and shadowed ClassicAPI's C global for all pfUI code. Replace it with a thin pfUI.hooksecurefunc shim that keeps the missing-target no-op our call sites rely on (ClassicAPI errors on a nil target) and delegates the actual hook to _G.hooksecurefunc. Migrated all 70 internal call sites (modules/libs/skins) to pfUI.hooksecurefunc; bare hooksecurefunc now resolves to ClassicAPI's C version everywhere. Dropped the unused prepend path and the orphaned pfUI.hooks table.
51 lines
1.8 KiB
Lua
51 lines
1.8 KiB
Lua
pfUI:RegisterModule("itemcount", function ()
|
|
-- Walk the 19 equipment slots looking for this item. C_Item.GetItemCount
|
|
-- bundles "bags + equipped" with no breakdown; we need to subtract the
|
|
-- equipped count to get a bags-only number.
|
|
local function CountEquipped(id)
|
|
local count = 0
|
|
for slot = INVSLOT_FIRST_EQUIPPED, INVSLOT_LAST_EQUIPPED do
|
|
if GetInventoryItemID("player", slot) == id then
|
|
count = count + 1
|
|
end
|
|
end
|
|
return count
|
|
end
|
|
|
|
local function AddCounts(frame, id)
|
|
if not id or id == HEARTHSTONE_ITEM_ID or C_Item.GetItemUniquenessByID(id) == 1 then return end
|
|
|
|
local total = C_Item.GetItemCount(id, true) -- bags + bank + equipped
|
|
if total < 1 then return end
|
|
|
|
local bagsAndEquipped = C_Item.GetItemCount(id, false)
|
|
local equipped = CountEquipped(id)
|
|
local bags = bagsAndEquipped - equipped
|
|
if bags < 0 then bags = 0 end
|
|
local bank = total - bagsAndEquipped
|
|
if bank < 0 then bank = 0 end
|
|
|
|
frame:AddLine(" ")
|
|
if bags > 0 then frame:AddDoubleLine("Bags:", bags, 1, 1, 1, 1, 1, 1) end
|
|
if bank > 0 then frame:AddDoubleLine("Bank:", bank, 1, 1, 1, 1, 1, 1) end
|
|
if equipped > 0 then frame:AddDoubleLine("Equipped:", equipped, 1, 1, 1, 1, 1, 1) end
|
|
frame:AddDoubleLine("Total:", total, 1, 1, 1, 1, 1, 1)
|
|
frame:Show()
|
|
end
|
|
|
|
pfUI.itemcount = CreateFrame("Frame", "pfItemCountTooltip", GameTooltip)
|
|
pfUI.itemcount:SetScript("OnShow", function()
|
|
if GameTooltip:HasItem() then
|
|
local _, _, id = GameTooltip:GetItem()
|
|
if id then AddCounts(GameTooltip, id) end
|
|
end
|
|
end)
|
|
|
|
pfUI.hooksecurefunc("SetItemRef", function()
|
|
if ItemRefTooltip:HasItem() then
|
|
local _, _, id = ItemRefTooltip:GetItem()
|
|
if id then AddCounts(ItemRefTooltip, id) end
|
|
end
|
|
end)
|
|
end)
|