bags: highlight quest items in bag

* detect quest items via itemlink
* add yellow border around quest items
* add quest icon on quest items
This commit is contained in:
shagu
2022-12-22 12:42:04 +01:00
parent 76e8804741
commit a886c740ec
+21 -7
View File
@@ -48,6 +48,12 @@ pfUI:RegisterModule("bags", "vanilla:tbc", function ()
return return
end end
local function LinkToStr(link)
if not link then return "" end
local _, _, linkstr = string.find(link, "(item:%d+:%d+:%d+:%d+)")
return linkstr or ""
end
-- hide blizzard's bankframe -- hide blizzard's bankframe
BankFrame:SetScale(0.001) BankFrame:SetScale(0.001)
BankFrame:SetPoint("TOPLEFT", 0,0) BankFrame:SetPoint("TOPLEFT", 0,0)
@@ -369,6 +375,11 @@ pfUI:RegisterModule("bags", "vanilla:tbc", function ()
pfUI.bags[bag].slots[slot].slot = slot pfUI.bags[bag].slots[slot].slot = slot
pfUI.bags[bag].slots[slot].frame:SetID(slot) pfUI.bags[bag].slots[slot].frame:SetID(slot)
pfUI.bags[bag].slots[slot].frame.qtext = pfUI.bags[bag].slots[slot].frame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
pfUI.bags[bag].slots[slot].frame.qtext:SetFont(pfUI.font_default, 13, "THICKOUTLINE")
pfUI.bags[bag].slots[slot].frame.qtext:SetPoint("TOPLEFT", 0, 0)
pfUI.bags[bag].slots[slot].frame.qtext:SetTextColor(1, .8, .2, 1)
if ShaguScore then if ShaguScore then
pfUI.bags[bag].slots[slot].frame.scoreText = pfUI.bags[bag].slots[slot].frame:CreateFontString(nil, "OVERLAY", "GameFontNormal") pfUI.bags[bag].slots[slot].frame.scoreText = pfUI.bags[bag].slots[slot].frame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
pfUI.bags[bag].slots[slot].frame.scoreText:SetFont(pfUI.font_default, 12, "OUTLINE") pfUI.bags[bag].slots[slot].frame.scoreText:SetFont(pfUI.font_default, 12, "OUTLINE")
@@ -377,15 +388,12 @@ pfUI:RegisterModule("bags", "vanilla:tbc", function ()
end end
local texture, count, locked, quality = GetContainerItemInfo(bag, slot) local texture, count, locked, quality = GetContainerItemInfo(bag, slot)
local linkstr = LinkToStr(GetContainerItemLink(bag, slot))
local _, _, q, _, _, _, itype = GetItemInfo(linkstr)
-- running advanced item color scan -- running advanced item color scan
if C.appearance.bags.borderonlygear == "0" and texture and quality and quality < 1 then if C.appearance.bags.borderonlygear == "0" and texture and quality and quality < 1 then
local link = GetContainerItemLink(bag, slot) if quality then quality = q end
if link then
local _, _, linkstr = string.find(link, "(item:%d+:%d+:%d+:%d+)")
local n, _, q = GetItemInfo(linkstr)
if quality then quality = q end
end
end end
SetItemButtonTexture(pfUI.bags[bag].slots[slot].frame, texture) SetItemButtonTexture(pfUI.bags[bag].slots[slot].frame, texture)
@@ -417,12 +425,18 @@ pfUI:RegisterModule("bags", "vanilla:tbc", function ()
local border = _G[pfUI.bags[bag].slots[slot].frame:GetName() .. "NormalTexture"] local border = _G[pfUI.bags[bag].slots[slot].frame:GetName() .. "NormalTexture"]
border:SetTexture("") border:SetTexture("")
pfUI.bags[bag].slots[slot].frame.qtext:SetText("")
-- detect backdrop border color -- detect backdrop border color
if quality and quality > tonumber(C.appearance.bags.borderlimit) then if quality and quality > tonumber(C.appearance.bags.borderlimit) then
pfUI.bags[bag].slots[slot].frame.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality)) pfUI.bags[bag].slots[slot].frame.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality))
elseif texture then elseif texture then
pfUI.bags[bag].slots[slot].frame.backdrop:SetBackdropBorderColor(.5,.5,.5,1) if itype == "Quest" then
pfUI.bags[bag].slots[slot].frame.backdrop:SetBackdropBorderColor(1, .8, .2, .8)
pfUI.bags[bag].slots[slot].frame.qtext:SetText("!")
else
pfUI.bags[bag].slots[slot].frame.backdrop:SetBackdropBorderColor(.5,.5,.5,1)
end
else else
local bagtype = GetBagFamily(bag) local bagtype = GetBagFamily(bag)