(fix) SpellCache causing BT2 auraNames icons not to display and small fixes
This commit is contained in:
@@ -2724,9 +2724,6 @@ function BuffTrigger.GetNameAndIconSimple(data, triggernum)
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Returns the name and icon to show in the options.
|
--- Returns the name and icon to show in the options.
|
||||||
--- @param data table
|
|
||||||
--- @param triggernum number
|
|
||||||
--- @return string|nil name, any icon
|
|
||||||
function BuffTrigger.GetNameAndIcon(data, triggernum)
|
function BuffTrigger.GetNameAndIcon(data, triggernum)
|
||||||
local name, icon = BuffTrigger.GetNameAndIconSimple(data, triggernum)
|
local name, icon = BuffTrigger.GetNameAndIconSimple(data, triggernum)
|
||||||
if (not name or not icon and WeakAuras.spellCache) then
|
if (not name or not icon and WeakAuras.spellCache) then
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ WeakAuras.doubleWidth = WeakAuras.normalWidth * 2
|
|||||||
|
|
||||||
local versionStringFromToc = GetAddOnMetadata("WeakAuras", "Version")
|
local versionStringFromToc = GetAddOnMetadata("WeakAuras", "Version")
|
||||||
local versionString = "5.19.5 Beta"
|
local versionString = "5.19.5 Beta"
|
||||||
local buildTime = "20250227215630"
|
local buildTime = "20250314121155"
|
||||||
local isAwesomeEnabled = C_NamePlate and C_NamePlate.GetNamePlateForUnit and true or false
|
local isAwesomeEnabled = C_NamePlate and C_NamePlate.GetNamePlateForUnit and true or false
|
||||||
|
|
||||||
WeakAuras.versionString = versionString
|
WeakAuras.versionString = versionString
|
||||||
|
|||||||
@@ -116,10 +116,7 @@ local function CreateNameOptions(aura_options, data, trigger, size, isExactSpell
|
|||||||
return GetSpellInfo(WeakAuras.SafeToNumber(trigger[optionKey] and trigger[optionKey][i] or 0))
|
return GetSpellInfo(WeakAuras.SafeToNumber(trigger[optionKey] and trigger[optionKey][i] or 0))
|
||||||
end
|
end
|
||||||
aura_options[iconOption].image = function()
|
aura_options[iconOption].image = function()
|
||||||
local icon
|
local icon = select(3, GetSpellInfo(trigger[optionKey] and trigger[optionKey][i] or ""))
|
||||||
if trigger.auraspellids and trigger.auraspellids[i] then
|
|
||||||
icon = select(3, GetSpellInfo(trigger.auraspellids[i]))
|
|
||||||
end
|
|
||||||
return icon and tostring(icon) or "", 18, 18
|
return icon and tostring(icon) or "", 18, 18
|
||||||
end
|
end
|
||||||
aura_options[iconOption].disabled = function()
|
aura_options[iconOption].disabled = function()
|
||||||
@@ -957,7 +954,7 @@ local function GetBuffTriggerOptions(data, triggernum)
|
|||||||
ignoreInvisible = {
|
ignoreInvisible = {
|
||||||
type = "toggle",
|
type = "toggle",
|
||||||
name = L["Ignore out of checking range"],
|
name = L["Ignore out of checking range"],
|
||||||
desc = L["Uses UnitIsVisible() to check if in range. This is polled every second."],
|
desc = L["Uses UnitIsVisible() to check if game client has loaded a object for this unit. This distance is around 100 yards. This is polled every second."],
|
||||||
order = 69.9,
|
order = 69.9,
|
||||||
width = WeakAuras.doubleWidth,
|
width = WeakAuras.doubleWidth,
|
||||||
hidden = function() return not (trigger.type == "aura2" and (trigger.unit == "group" or trigger.unit == "raid" or trigger.unit == "party")) end
|
hidden = function() return not (trigger.type == "aura2" and (trigger.unit == "group" or trigger.unit == "raid" or trigger.unit == "party")) end
|
||||||
|
|||||||
+15
-12
@@ -19,7 +19,7 @@ local bestIcon = {}
|
|||||||
-- Builds a cache of name/icon pairs from existing spell data
|
-- Builds a cache of name/icon pairs from existing spell data
|
||||||
-- This is a rather slow operation, so it's only done once, and the result is subsequently saved
|
-- This is a rather slow operation, so it's only done once, and the result is subsequently saved
|
||||||
function spellCache.Build()
|
function spellCache.Build()
|
||||||
if not cache then
|
if not cache then
|
||||||
error("spellCache has not been loaded. Call WeakAuras.spellCache.Load(...) first.")
|
error("spellCache has not been loaded. Call WeakAuras.spellCache.Load(...) first.")
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -27,8 +27,8 @@ function spellCache.Build()
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local holes
|
|
||||||
--[[
|
--[[
|
||||||
|
local holes
|
||||||
if WeakAuras.IsClassicEra() then
|
if WeakAuras.IsClassicEra() then
|
||||||
holes = {}
|
holes = {}
|
||||||
holes[63707] = 81743
|
holes[63707] = 81743
|
||||||
@@ -57,7 +57,7 @@ function spellCache.Build()
|
|||||||
id = id + 1
|
id = id + 1
|
||||||
local name, _, icon = GetSpellInfo(id)
|
local name, _, icon = GetSpellInfo(id)
|
||||||
|
|
||||||
if(icon == 136243) then -- 136243 is the a gear icon, we can ignore those spells
|
if (icon and icon:lower() == "interface\\icons\\trade_engineering") then -- 136243 is the a gear icon, we can ignore those spells
|
||||||
misses = 0;
|
misses = 0;
|
||||||
elseif name and name ~= "" and icon then
|
elseif name and name ~= "" and icon then
|
||||||
cache[name] = cache[name] or {}
|
cache[name] = cache[name] or {}
|
||||||
@@ -68,9 +68,11 @@ function spellCache.Build()
|
|||||||
cache[name].spells = cache[name].spells .. "," .. id .. "=" .. icon
|
cache[name].spells = cache[name].spells .. "," .. id .. "=" .. icon
|
||||||
end
|
end
|
||||||
misses = 0
|
misses = 0
|
||||||
--if holes and holes[id] then
|
--[[
|
||||||
-- id = holes[id]
|
if holes and holes[id] then
|
||||||
--end
|
id = holes[id]
|
||||||
|
end
|
||||||
|
]]
|
||||||
else
|
else
|
||||||
misses = misses + 1
|
misses = misses + 1
|
||||||
end
|
end
|
||||||
@@ -110,7 +112,7 @@ while misses < 4000000 do
|
|||||||
id = id + 1
|
id = id + 1
|
||||||
local name = GetSpellInfo(id)
|
local name = GetSpellInfo(id)
|
||||||
local icon = GetSpellTexture(id)
|
local icon = GetSpellTexture(id)
|
||||||
if icon == 136243 then -- 136243 is the a gear icon, we can ignore those spells
|
if (icon == "Interface\\Icons\\trade_engineering") then -- 136243 is the a gear icon, we can ignore those spells
|
||||||
misses = 0
|
misses = 0
|
||||||
elseif name and name ~= "" and icon then
|
elseif name and name ~= "" and icon then
|
||||||
if misses > 10000 then
|
if misses > 10000 then
|
||||||
@@ -138,11 +140,11 @@ function spellCache.GetIcon(name)
|
|||||||
local bestMatch = nil
|
local bestMatch = nil
|
||||||
if (icons) then
|
if (icons) then
|
||||||
if (icons.spells) then
|
if (icons.spells) then
|
||||||
for spell, icon in icons.spells:gmatch("(%d+)=(%d+)") do
|
for spell, icon in icons.spells:gmatch("(%d+)=([%w_\\-]+),?") do
|
||||||
local spellId = tonumber(spell)
|
local spellId = tonumber(spell)
|
||||||
|
|
||||||
if not bestMatch or (spellId and spellId ~= 0 and IsSpellKnown(spellId)) then
|
if not bestMatch or (spellId and spellId ~= 0 and IsSpellKnown(spellId)) then
|
||||||
bestMatch = tonumber(icon)
|
bestMatch = icon
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -161,10 +163,11 @@ function spellCache.GetSpellsMatching(name)
|
|||||||
if cache[name] then
|
if cache[name] then
|
||||||
if cache[name].spells then
|
if cache[name].spells then
|
||||||
local result = {}
|
local result = {}
|
||||||
for spell, icon in cache[name].spells:gmatch("(%d+)=(%d+)") do
|
for spell, icon in cache[name].spells:gmatch("(%d+)=([%w_\\-]+),?") do
|
||||||
local spellId = tonumber(spell)
|
local spellId = tonumber(spell)
|
||||||
local iconId = tonumber(icon)
|
if spellId then
|
||||||
result[spellId] = icon
|
result[spellId] = icon
|
||||||
|
end
|
||||||
end
|
end
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ local function CorrectSpellName(input)
|
|||||||
local spells = spellCache.GetSpellsMatching(input)
|
local spells = spellCache.GetSpellsMatching(input)
|
||||||
if type(spells) == "table" then
|
if type(spells) == "table" then
|
||||||
for id in pairs(spells) do
|
for id in pairs(spells) do
|
||||||
if id and tonumber(id) and id > 0 and IsSpellKnown(tonumber(id)) then
|
if tonumber(id) and id ~= 0 and IsSpellKnown(id) then
|
||||||
return id
|
return id
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -648,12 +648,12 @@ function OptionsPrivate.ConstructOptions(prototype, data, startorder, triggernum
|
|||||||
local icon = spellCache.GetIcon(value);
|
local icon = spellCache.GetIcon(value);
|
||||||
return icon and tostring(icon) or "", 18, 18;
|
return icon and tostring(icon) or "", 18, 18;
|
||||||
elseif(arg.type == "spell") then
|
elseif(arg.type == "spell") then
|
||||||
local spellName, _, icon = GetSpellInfo(value);
|
local name, _, icon = GetSpellInfo(value);
|
||||||
if arg.noValidation then
|
if arg.noValidation then
|
||||||
-- GetSpellInfo and other wow apis are case insensitive, but the later matching we do
|
-- GetSpellInfo and other wow apis are case insensitive, but the later matching we do
|
||||||
-- isn't. For validted inputs, we automatically correct the casing via GetSpellName
|
-- isn't. For validted inputs, we automatically correct the casing via GetSpellName
|
||||||
-- Since we don't do that for noValidation, we are extra picky on the input
|
-- Since we don't do that for noValidation, we are extra picky on the input
|
||||||
if type(value) == "string" and spellName ~= value then
|
if type(value) == "string" and name ~= value then
|
||||||
return "", 18, 18
|
return "", 18, 18
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user