fix: sort cooking
This commit is contained in:
@@ -564,6 +564,11 @@ local function AddSortKeys(items)
|
||||
|
||||
-- Texture pattern for grouping similar items (especially trade goods)
|
||||
item.texturePattern = GetTexturePattern(itemTexture)
|
||||
-- Group Trade Goods that are meats/eggs together regardless of texture
|
||||
local nameLower = item.itemName and string.lower(item.itemName) or ""
|
||||
if itemType == "Trade Goods" and (string.find(nameLower, "meat") or string.find(nameLower, "egg")) then
|
||||
item.texturePattern = "trade_meat_egg"
|
||||
end
|
||||
|
||||
-- Inverted values for descending sorts
|
||||
item.invertedQuality = -(tonumber(itemRarity) or 0)
|
||||
|
||||
@@ -553,6 +553,19 @@ function BagFrame:DisplayItemsByCategory(bagData, isOtherChar, charName)
|
||||
if numItems > 0 then
|
||||
-- Sort items in category: Subclass > Quality > Name
|
||||
table.sort(items, function(a, b)
|
||||
-- Group Trade Goods that are meats/eggs together
|
||||
local function isMeatEgg(d)
|
||||
if not d or not d.name then return false end
|
||||
local t = d.type or d.class or ""
|
||||
if t ~= "Trade Goods" then return false end
|
||||
local n = string.lower(d.name)
|
||||
return string.find(n, "meat") or string.find(n, "egg")
|
||||
end
|
||||
local ma = isMeatEgg(a.itemData)
|
||||
local mb = isMeatEgg(b.itemData)
|
||||
if ma ~= mb then
|
||||
return ma and not mb
|
||||
end
|
||||
-- Priority: consumable restore tags (eat > drink > restore > nil)
|
||||
local pa = a.itemData and a.itemData.restoreTag or nil
|
||||
local pb = b.itemData and b.itemData.restoreTag or nil
|
||||
|
||||
+22
-22
@@ -983,28 +983,28 @@ function Guda_ItemButton_OnEnter(self)
|
||||
|
||||
-- Debug: print hovered item's texture path to chat
|
||||
-- Uses GetItemInfo on the hovered item's ID
|
||||
--if self.hasItem then
|
||||
-- local link = nil
|
||||
-- if self.itemData and self.itemData.link then
|
||||
-- link = self.itemData.link
|
||||
-- else
|
||||
-- -- Fallback to live bag query
|
||||
-- link = GetContainerItemLink(self.bagID, self.slotID)
|
||||
-- end
|
||||
-- if link and addon and addon.Modules and addon.Modules.Utils and addon.Modules.Utils.ExtractItemID then
|
||||
-- local itemID = addon.Modules.Utils:ExtractItemID(link)
|
||||
-- if itemID and addon.Modules.Utils.GetItemInfoSafe then
|
||||
-- local name, itemLink, itemRarity, itemLevel, itemCategory, itemType, itemStackCount,
|
||||
-- itemSubType, itemTexture, itemEquipLoc, itemSellPrice = addon.Modules.Utils:GetItemInfoSafe(itemID)
|
||||
-- if addon and addon.Print then
|
||||
-- addon:Print("itemTexture: %s", tostring(itemTexture))
|
||||
-- addon:Print("itemCategory: %s", tostring(itemCategory))
|
||||
-- addon:Print("itemType: %s", tostring(itemType))
|
||||
-- addon:Print("itemType: %s", tostring(itemType))
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
--end
|
||||
if self.hasItem then
|
||||
local link = nil
|
||||
if self.itemData and self.itemData.link then
|
||||
link = self.itemData.link
|
||||
else
|
||||
-- Fallback to live bag query
|
||||
link = GetContainerItemLink(self.bagID, self.slotID)
|
||||
end
|
||||
if link and addon and addon.Modules and addon.Modules.Utils and addon.Modules.Utils.ExtractItemID then
|
||||
local itemID = addon.Modules.Utils:ExtractItemID(link)
|
||||
if itemID and addon.Modules.Utils.GetItemInfoSafe then
|
||||
local name, itemLink, itemRarity, itemLevel, itemCategory, itemType, itemStackCount,
|
||||
itemSubType, itemTexture, itemEquipLoc, itemSellPrice = addon.Modules.Utils:GetItemInfoSafe(itemID)
|
||||
if addon and addon.Print then
|
||||
addon:Print("itemTexture: %s", tostring(itemTexture))
|
||||
addon:Print("itemCategory: %s", tostring(itemCategory))
|
||||
addon:Print("itemType: %s", tostring(itemType))
|
||||
addon:Print("itemType: %s", tostring(itemType))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
-- Handle merchant sell cursor (same approach as BagShui)
|
||||
if MerchantFrame:IsShown() and not self.isBank and not self.otherChar and self.hasItem then
|
||||
ShowContainerSellCursor(self.bagID, self.slotID)
|
||||
|
||||
Reference in New Issue
Block a user