mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-22 15:46:56 +00:00
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)
|
|
|
|
hooksecurefunc("SetItemRef", function()
|
|
if ItemRefTooltip:HasItem() then
|
|
local _, _, id = ItemRefTooltip:GetItem()
|
|
if id then AddCounts(ItemRefTooltip, id) end
|
|
end
|
|
end)
|
|
end)
|