Add getItemSubclassId function and artifactPowerFilter
This commit is contained in:
@@ -36,6 +36,7 @@ local function getItemLevel(slot)
|
||||
local itemLink = getItemLink(slot)
|
||||
return select(4, GetItemInfo(itemLink))
|
||||
end
|
||||
|
||||
---The vendor price in copper, or 0 for items that cannot be sold
|
||||
---@param slot number
|
||||
---@return number
|
||||
@@ -46,6 +47,13 @@ local function getItemValue(slot)
|
||||
end
|
||||
---@param slot number
|
||||
---@return number
|
||||
local function getItemSubclassId(slot)
|
||||
if slot == nil then return 0 end
|
||||
local itemLink = getItemLink(slot)
|
||||
return select(13, GetItemInfo(itemLink))
|
||||
end
|
||||
---@param slot number
|
||||
---@return number
|
||||
local function getItemQuantity(slot)
|
||||
if slot == nil then return 0 end
|
||||
return select(3, GetLootSlotInfo(slot))
|
||||
@@ -79,25 +87,6 @@ local function getBindType(slot)
|
||||
return select(14, GetItemInfo(itemLink))
|
||||
end
|
||||
|
||||
|
||||
---@param slot number
|
||||
---@return nil
|
||||
local doLoot = function(slot)
|
||||
LootSlot(slot)
|
||||
|
||||
local itemIcon = getItemIcon(slot) or 134400
|
||||
local itemName = getItemName(slot) or "Unknown"
|
||||
itemName = itemName:gsub("\n", ", ")
|
||||
local itemQuality = getItemQuality(slot) or 0
|
||||
|
||||
if not WeakAurasSaved.Cyka.ItemCache[itemName] then
|
||||
WeakAurasSaved.Cyka.ItemCache[itemName] = {
|
||||
icon = itemIcon,
|
||||
quality = itemQuality,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
---@class Filter
|
||||
---@field enabled boolean
|
||||
---@field requires table<string, fun(slot: number): string|number|boolean> | nil
|
||||
@@ -349,6 +338,17 @@ local boeFilter = Filter.new(true,
|
||||
end
|
||||
return false
|
||||
end)
|
||||
local artifactPowerFilter = Filter.new(true, {
|
||||
["type"] = getItemType,
|
||||
["subtype"] = getItemSubtype,
|
||||
["subclassid"] = getItemSubclassId
|
||||
}, function(slot, provided)
|
||||
---@cast provided { type: string, subtype: string, subclassid: number }
|
||||
if provided.type == "Consumable" and provided.subtype == "Other" and provided.subclassid == 8 then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end)
|
||||
|
||||
-- local azeriteFilter = {
|
||||
-- enabled = true,
|
||||
@@ -370,21 +370,22 @@ local boeFilter = Filter.new(true,
|
||||
|
||||
---@type table<Filter>
|
||||
local filters = {
|
||||
goldFilter,
|
||||
orderResourcesFilter,
|
||||
mountFilter,
|
||||
ilvlFilter,
|
||||
professionFilter,
|
||||
valueFilter,
|
||||
greyValueFilter,
|
||||
questItemFilter,
|
||||
classGearFilter,
|
||||
arguniteFilter,
|
||||
ancientManaFilter,
|
||||
reicpeFilter,
|
||||
arguniteFilter,
|
||||
artifactPowerFilter,
|
||||
bloodhunerQuarryFilter,
|
||||
bloodOfSargerasFilter,
|
||||
boeFilter,
|
||||
bloodhunerQuarryFilter,
|
||||
classGearFilter,
|
||||
goldFilter,
|
||||
greyValueFilter,
|
||||
ilvlFilter,
|
||||
mountFilter,
|
||||
orderResourcesFilter,
|
||||
professionFilter,
|
||||
questItemFilter,
|
||||
reicpeFilter,
|
||||
valueFilter,
|
||||
}
|
||||
|
||||
---@class FilterService
|
||||
@@ -405,9 +406,29 @@ aura_env.FilterService = {
|
||||
aura_env.FilterService.doLoot(slotsToLoot)
|
||||
end,
|
||||
|
||||
---@param slots table<number>
|
||||
---@return nil
|
||||
doLoot = function(slots)
|
||||
for i = #slots, 1, -1 do
|
||||
doLoot(slots[i])
|
||||
aura_env.FilterService.lootslot(slots[i])
|
||||
end
|
||||
end,
|
||||
|
||||
---@param slot number
|
||||
---@return nil
|
||||
lootslot = function(slot)
|
||||
LootSlot(slot)
|
||||
|
||||
local itemIcon = getItemIcon(slot) or 134400
|
||||
local itemName = getItemName(slot) or "Unknown"
|
||||
itemName = itemName:gsub("\n", ", ")
|
||||
local itemQuality = getItemQuality(slot) or 0
|
||||
|
||||
if not WeakAurasSaved.Cyka.ItemCache[itemName] then
|
||||
WeakAurasSaved.Cyka.ItemCache[itemName] = {
|
||||
icon = itemIcon,
|
||||
quality = itemQuality,
|
||||
}
|
||||
end
|
||||
end
|
||||
}
|
||||
|
Reference in New Issue
Block a user