mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-07 06:00:00 +00:00
add Item Count module
This commit is contained in:
+1
-1
@@ -750,7 +750,7 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("tooltip", nil, "alwaysperc", "0")
|
||||
pfUI:UpdateConfig("tooltip", "compare", "basestats", "1")
|
||||
pfUI:UpdateConfig("tooltip", "compare", "showalways", "0")
|
||||
pfUI:UpdateConfig("tooltip", "vendor", "showalways", "0")
|
||||
pfUI:UpdateConfig("tooltip", "vendor", "showalways", "1")
|
||||
pfUI:UpdateConfig("tooltip", "questitem", "showquest", "1")
|
||||
pfUI:UpdateConfig("tooltip", "questitem", "showcount", "0")
|
||||
pfUI:UpdateConfig("tooltip", "statusbar", "texture", "Interface\\AddOns\\pfUI\\img\\bar")
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
<Include file="..\modules\roll.lua"/>
|
||||
<Include file="..\modules\infight.lua"/>
|
||||
<Include file="..\modules\sellvalue.lua"/>
|
||||
<Include file="..\modules\itemcount.lua"/>
|
||||
<Include file="..\modules\eqcompare.lua"/>
|
||||
<Include file="..\modules\map.lua"/>
|
||||
<Include file="..\modules\mapcolors.lua"/>
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
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 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
|
||||
|
||||
-- GameTooltip: piggyback on its OnShow lifecycle. Each tooltip refresh
|
||||
-- hides/shows the parent which propagates Show() to this child frame.
|
||||
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)
|
||||
|
||||
-- ItemRefTooltip: persistent tooltip from chat link clicks.
|
||||
hooksecurefunc("SetItemRef", function()
|
||||
if ItemRefTooltip:HasItem() then
|
||||
local _, _, id = ItemRefTooltip:GetItem()
|
||||
if id then AddCounts(ItemRefTooltip, id) end
|
||||
end
|
||||
end)
|
||||
end)
|
||||
@@ -7,11 +7,7 @@ pfUI:RegisterModule("sellvalue", function ()
|
||||
local buy = pfSellData[id]
|
||||
if sell == 0 and not buy then return end
|
||||
|
||||
if not MerchantFrame:IsShown() and sell > 0 then
|
||||
SetTooltipMoney(frame, sell * count)
|
||||
end
|
||||
|
||||
if IsShiftKeyDown() or C.tooltip.vendor.showalways == "1" then
|
||||
if C.tooltip.vendor.showalways == "1" or IsShiftKeyDown() then
|
||||
frame:AddLine(" ")
|
||||
|
||||
if sell > 0 then
|
||||
|
||||
Reference in New Issue
Block a user