feat: custom quest items db
This commit is contained in:
+9
-1
@@ -54,13 +54,21 @@ function Guda_CategorizeItem(itemData, bagID, slotID, categories, specialItems,
|
||||
end
|
||||
|
||||
-- Priority 3: Quest Items
|
||||
-- Check multiple sources: tooltip scan, itemClass, and itemType (same logic as ItemButton display)
|
||||
-- Check multiple sources: tooltip scan, itemClass, itemType, and QuestItemsDB
|
||||
local isQuestItem = false
|
||||
if itemData.class == "Quest" or itemData.type == "Quest" then
|
||||
isQuestItem = true
|
||||
elseif not isOtherChar then
|
||||
isQuestItem = addon.Modules.Utils:IsQuestItemTooltip(bagID, slotID)
|
||||
end
|
||||
-- Also check the QuestItemsDB for known faction-specific quest items
|
||||
if not isQuestItem and itemData.link then
|
||||
local itemID = addon.Modules.Utils:ExtractItemID(itemData.link)
|
||||
if itemID and addon.IsQuestItemByID then
|
||||
local playerFaction = UnitFactionGroup("player")
|
||||
isQuestItem = addon:IsQuestItemByID(itemID, playerFaction)
|
||||
end
|
||||
end
|
||||
if isQuestItem then
|
||||
table.insert(categories["Quest"], {bagID = bagID, slotID = slotID, itemData = itemData})
|
||||
return
|
||||
|
||||
+15
-8
@@ -62,14 +62,21 @@ local function IsQuestItem(bagID, slotID, isBank)
|
||||
local itemName, _, _, _, itemCategory, itemType = addon.Modules.Utils:GetItemInfoSafe(itemID)
|
||||
if itemCategory == "Quest" or itemType == "Quest" then
|
||||
isQuestItem = true
|
||||
-- For quest items, try a light heuristic to flag starters by name
|
||||
--if itemName and (string.find(itemName, "Note") or
|
||||
-- string.find(itemName, "Letter") or
|
||||
-- string.find(itemName, "Orders") or
|
||||
-- string.find(itemName, "Document") or
|
||||
-- string.find(itemName, "Tablet")) then
|
||||
-- isQuestStarter = true
|
||||
--end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Check the QuestItemsDB for known faction-specific quest items
|
||||
if not isQuestItem then
|
||||
local link = GetContainerItemLink(bagID, slotID)
|
||||
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.IsQuestItemByID then
|
||||
local playerFaction = UnitFactionGroup("player")
|
||||
local isDBQuestItem = addon:IsQuestItemByID(itemID, playerFaction)
|
||||
if isDBQuestItem then
|
||||
isQuestItem = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -75,6 +75,21 @@ function QuestItemBar:CheckQuestItemUsable(bagID, slotID)
|
||||
end
|
||||
end
|
||||
|
||||
-- Check the QuestItemsDB for known faction-specific quest items
|
||||
if not isQuestItem then
|
||||
local link = GetContainerItemLink(bagID, slotID)
|
||||
if link and addon.Modules.Utils and addon.Modules.Utils.ExtractItemID then
|
||||
local itemID = addon.Modules.Utils:ExtractItemID(link)
|
||||
if itemID and addon.IsQuestItemByID then
|
||||
local playerFaction = UnitFactionGroup("player")
|
||||
local isDBQuestItem = addon:IsQuestItemByID(itemID, playerFaction)
|
||||
if isDBQuestItem then
|
||||
isQuestItem = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return isQuestItem, isQuestStarter, isUsable
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user