feat: junk category section
This commit is contained in:
@@ -193,6 +193,32 @@ function Utils:IsQuestItemTooltip(bagID, slotID)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Check if an item has a gray title in its tooltip or link
|
||||||
|
function Utils:IsItemGrayTooltip(bagID, slotID, itemLink)
|
||||||
|
-- Check link first if provided (works for other characters too)
|
||||||
|
if itemLink and string.find(itemLink, "|cff9d9d9d") then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
if not bagID or not slotID then return false end
|
||||||
|
|
||||||
|
local tooltip = GetScanTooltip()
|
||||||
|
tooltip:ClearLines()
|
||||||
|
tooltip:SetBagItem(bagID, slotID)
|
||||||
|
|
||||||
|
local line = getglobal("GudaBagScanTooltipTextLeft1")
|
||||||
|
if line then
|
||||||
|
local text = line:GetText()
|
||||||
|
if text then
|
||||||
|
-- Poor quality color code is |cff9d9d9d
|
||||||
|
if string.find(text, "|cff9d9d9d") then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
-- Get bag slot count
|
-- Get bag slot count
|
||||||
function Utils:GetBagSlotCount(bagID)
|
function Utils:GetBagSlotCount(bagID)
|
||||||
if bagID == -1 then
|
if bagID == -1 then
|
||||||
|
|||||||
+32
-2
@@ -65,7 +65,8 @@ local CATEGORY_ORDER = {
|
|||||||
["Key"] = 14,
|
["Key"] = 14,
|
||||||
["Miscellaneous"] = 15,
|
["Miscellaneous"] = 15,
|
||||||
["Quest"] = 16,
|
["Quest"] = 16,
|
||||||
["Class Items"] = 17,
|
["Junk"] = 17,
|
||||||
|
["Class Items"] = 18,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Subclass ordering for grouping related items
|
-- Subclass ordering for grouping related items
|
||||||
@@ -167,6 +168,31 @@ local function IsQuestItemStarter(bagID, slotID)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Check if an item has a gray title in its tooltip or link
|
||||||
|
local function IsItemGrayTooltip(bagID, slotID, itemLink)
|
||||||
|
-- Check link first if provided
|
||||||
|
if itemLink and string.find(itemLink, "|cff9d9d9d") then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
if not bagID or not slotID then return false end
|
||||||
|
|
||||||
|
scanTooltip:ClearLines()
|
||||||
|
scanTooltip:SetBagItem(bagID, slotID)
|
||||||
|
|
||||||
|
local line = getglobal("Guda_SortScanTooltipTextLeft1")
|
||||||
|
if line then
|
||||||
|
local text = line:GetText()
|
||||||
|
if text then
|
||||||
|
-- Poor quality color code is |cff9d9d9d
|
||||||
|
if string.find(text, "|cff9d9d9d") then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
-- Extract itemID from item link
|
-- Extract itemID from item link
|
||||||
local function GetItemID(link)
|
local function GetItemID(link)
|
||||||
if not link then return 0 end
|
if not link then return 0 end
|
||||||
@@ -481,7 +507,11 @@ local function AddSortKeys(items)
|
|||||||
item.isMount = isMount
|
item.isMount = isMount
|
||||||
|
|
||||||
-- Class and slot ordering
|
-- Class and slot ordering
|
||||||
if isEquippable then
|
if itemRarity == 0 or IsItemGrayTooltip(item.bagID, item.slot, item.data.link) then
|
||||||
|
item.sortedClass = CATEGORY_ORDER["Junk"] or 99
|
||||||
|
item.equipSlotOrder = 999
|
||||||
|
item.isEquippable = false -- Treat gray gear as junk, not gear
|
||||||
|
elseif isEquippable then
|
||||||
item.sortedClass = 1 -- All equippable gear gets priority class
|
item.sortedClass = 1 -- All equippable gear gets priority class
|
||||||
item.equipSlotOrder = EQUIP_SLOT_ORDER[itemSubType] or 999
|
item.equipSlotOrder = EQUIP_SLOT_ORDER[itemSubType] or 999
|
||||||
else
|
else
|
||||||
|
|||||||
+6
-2
@@ -415,7 +415,7 @@ function BagFrame:DisplayItemsByCategory(bagData, isOtherChar, charName)
|
|||||||
-- Group items by category
|
-- Group items by category
|
||||||
local categories = {}
|
local categories = {}
|
||||||
local categoryList = {
|
local categoryList = {
|
||||||
"Weapon", "Armor", "Consumable", "Food", "Drink", "Trade Goods", "Reagent", "Recipe", "Quiver", "Container", "Soul Bag", "Keyring", "Miscellaneous", "Quest", "Class Items"
|
"Weapon", "Armor", "Consumable", "Food", "Drink", "Trade Goods", "Reagent", "Recipe", "Quiver", "Container", "Soul Bag", "Keyring", "Miscellaneous", "Quest", "Junk", "Class Items"
|
||||||
}
|
}
|
||||||
for _, cat in ipairs(categoryList) do categories[cat] = {} end
|
for _, cat in ipairs(categoryList) do categories[cat] = {} end
|
||||||
|
|
||||||
@@ -469,7 +469,11 @@ function BagFrame:DisplayItemsByCategory(bagData, isOtherChar, charName)
|
|||||||
elseif (not isOtherChar and addon.Modules.Utils:IsQuestItemTooltip(bagID, slotID)) or itemData.class == "Quest" then
|
elseif (not isOtherChar and addon.Modules.Utils:IsQuestItemTooltip(bagID, slotID)) or itemData.class == "Quest" then
|
||||||
table.insert(categories["Quest"], {bagID = bagID, slotID = slotID, itemData = itemData})
|
table.insert(categories["Quest"], {bagID = bagID, slotID = slotID, itemData = itemData})
|
||||||
|
|
||||||
-- Priority 4: Food and Drink
|
-- Priority 4: Junk (Gray items)
|
||||||
|
elseif itemData.quality == 0 or addon.Modules.Utils:IsItemGrayTooltip(bagID, slotID, itemData.link) then
|
||||||
|
table.insert(categories["Junk"], {bagID = bagID, slotID = slotID, itemData = itemData})
|
||||||
|
|
||||||
|
-- Priority 5: Food and Drink
|
||||||
elseif itemData.class == "Consumable" then
|
elseif itemData.class == "Consumable" then
|
||||||
cat = "Consumable"
|
cat = "Consumable"
|
||||||
local sub = itemData.subclass or ""
|
local sub = itemData.subclass or ""
|
||||||
|
|||||||
+6
-2
@@ -267,7 +267,7 @@ function BankFrame:DisplayItemsByCategory(bankData, isOtherChar, charName)
|
|||||||
-- Group items by category
|
-- Group items by category
|
||||||
local categories = {}
|
local categories = {}
|
||||||
local categoryList = {
|
local categoryList = {
|
||||||
"Weapon", "Armor", "Consumable", "Food", "Drink", "Trade Goods", "Reagent", "Recipe", "Quiver", "Container", "Soul Bag", "Miscellaneous", "Quest", "Class Items"
|
"Weapon", "Armor", "Consumable", "Food", "Drink", "Trade Goods", "Reagent", "Recipe", "Quiver", "Container", "Soul Bag", "Miscellaneous", "Quest", "Junk", "Class Items"
|
||||||
}
|
}
|
||||||
for _, cat in ipairs(categoryList) do categories[cat] = {} end
|
for _, cat in ipairs(categoryList) do categories[cat] = {} end
|
||||||
|
|
||||||
@@ -316,7 +316,11 @@ function BankFrame:DisplayItemsByCategory(bankData, isOtherChar, charName)
|
|||||||
if (not isOtherChar and addon.Modules.Utils:IsQuestItemTooltip(bagID, slotID)) or itemData.class == "Quest" then
|
if (not isOtherChar and addon.Modules.Utils:IsQuestItemTooltip(bagID, slotID)) or itemData.class == "Quest" then
|
||||||
cat = "Quest"
|
cat = "Quest"
|
||||||
|
|
||||||
-- Priority 4: Food and Drink
|
-- Priority 4: Junk (Gray items)
|
||||||
|
elseif itemData.quality == 0 or addon.Modules.Utils:IsItemGrayTooltip(bagID, slotID, itemData.link) then
|
||||||
|
cat = "Junk"
|
||||||
|
|
||||||
|
-- Priority 5: Food and Drink
|
||||||
elseif itemData.class == "Consumable" then
|
elseif itemData.class == "Consumable" then
|
||||||
cat = "Consumable"
|
cat = "Consumable"
|
||||||
local sub = itemData.subclass or ""
|
local sub = itemData.subclass or ""
|
||||||
|
|||||||
Reference in New Issue
Block a user