diff --git a/Sorting/SortEngine.lua b/Sorting/SortEngine.lua index ce881e4..516881f 100644 --- a/Sorting/SortEngine.lua +++ b/Sorting/SortEngine.lua @@ -57,14 +57,15 @@ local CATEGORY_ORDER = { ["Weapon"] = 4, -- Non-equippable weapons ["Armor"] = 5, -- Non-equippable armor ["Tools"] = 6, - ["Quiver"] = 7, - ["Reagent"] = 8, - ["Trade Goods"] = 9, - ["Recipe"] = 10, - ["Container"] = 11, - ["Quest"] = 12, - ["Key"] = 13, - ["Miscellaneous"] = 14, + ["Class Items"] = 7, + ["Quiver"] = 8, + ["Reagent"] = 9, + ["Trade Goods"] = 10, + ["Recipe"] = 11, + ["Container"] = 12, + ["Quest"] = 13, + ["Key"] = 14, + ["Miscellaneous"] = 15, } -- Subclass ordering for grouping related items diff --git a/UI/BagFrame.lua b/UI/BagFrame.lua index 4b4cbf8..25ba137 100644 --- a/UI/BagFrame.lua +++ b/UI/BagFrame.lua @@ -403,7 +403,7 @@ function BagFrame:DisplayItemsByCategory(bagData, isOtherChar, charName) -- Group items by category local categories = {} local categoryList = { - "Weapon", "Armor", "Consumable", "Food", "Drink", "Quest", "Trade Goods", "Reagent", "Recipe", "Quiver", "Container", "Soul Bag", "Keyring", "Miscellaneous" + "Weapon", "Armor", "Consumable", "Food", "Drink", "Class Items", "Quest", "Trade Goods", "Reagent", "Recipe", "Quiver", "Container", "Soul Bag", "Keyring", "Miscellaneous" } for _, cat in ipairs(categoryList) do categories[cat] = {} end @@ -438,11 +438,18 @@ function BagFrame:DisplayItemsByCategory(bagData, isOtherChar, charName) itemName == "Blood Scythe" then table.insert(specialItems.Tools, {bagID = bagID, slotID = slotID, itemData = itemData}) - -- Priority 2: Quest Items + -- Priority 2: Class Items (Soul Shards, Arrows, Bullets) + elseif addon.Modules.Utils:IsSoulShard(itemData.link) or + itemData.class == "Projectile" or + itemData.subclass == "Arrow" or + itemData.subclass == "Bullet" then + table.insert(categories["Class Items"], {bagID = bagID, slotID = slotID, itemData = itemData}) + + -- Priority 3: Quest Items 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}) - -- Priority 3: Food and Drink + -- Priority 4: Food and Drink elseif itemData.class == "Consumable" then cat = "Consumable" local sub = itemData.subclass or "" diff --git a/UI/BankFrame.lua b/UI/BankFrame.lua index f29dd8b..bd17e7d 100644 --- a/UI/BankFrame.lua +++ b/UI/BankFrame.lua @@ -255,7 +255,7 @@ function BankFrame:DisplayItemsByCategory(bankData, isOtherChar, charName) -- Group items by category local categories = {} local categoryList = { - "Weapon", "Armor", "Consumable", "Food", "Drink", "Quest", "Trade Goods", "Reagent", "Recipe", "Quiver", "Container", "Soul Bag", "Miscellaneous" + "Weapon", "Armor", "Consumable", "Food", "Drink", "Class Items", "Quest", "Trade Goods", "Reagent", "Recipe", "Quiver", "Container", "Soul Bag", "Miscellaneous" } for _, cat in ipairs(categoryList) do categories[cat] = {} end @@ -291,11 +291,20 @@ function BankFrame:DisplayItemsByCategory(bankData, isOtherChar, charName) return end - -- Priority 2: Quest Items + -- Priority 2: Class Items (Soul Shards, Arrows, Bullets) + if addon.Modules.Utils:IsSoulShard(itemData.link) or + itemData.class == "Projectile" or + itemData.subclass == "Arrow" or + itemData.subclass == "Bullet" then + table.insert(categories["Class Items"], {bagID = bagID, slotID = slotID, itemData = itemData}) + return + end + + -- Priority 3: Quest Items if (not isOtherChar and addon.Modules.Utils:IsQuestItemTooltip(bagID, slotID)) or itemData.class == "Quest" then cat = "Quest" - -- Priority 3: Food and Drink + -- Priority 4: Food and Drink elseif itemData.class == "Consumable" then cat = "Consumable" local sub = itemData.subclass or ""