Clean up WeakAuras table and remove members that no one should touch

This commit is contained in:
NoM0Re
2025-01-09 15:14:12 +01:00
parent e5938f813d
commit a5dbbd2640
33 changed files with 529 additions and 467 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ local anim_function_strings = Private.anim_function_strings;
local function noopErrorHandler() end
local frame = WeakAuras.frames["WeakAuras Main Frame"]
local frame = Private.frames["WeakAuras Main Frame"]
local updatingAnimations;
local last_update = GetTime();
+108 -39
View File
@@ -379,18 +379,29 @@ local function MakeReadOnly(input, options)
})
end
--- Wraps a table, so that accessing any key in it creates a deprecated warning
local function MakeDeprecated(input, name, warningMsg)
return setmetatable({},
{
__index = function(t, k)
Private.AuraWarnings.UpdateWarning(current_uid, "Deprecated_" .. name, "warning", warningMsg)
return input[k]
end,
__metatable = false
})
end
local FakeWeakAurasMixin = {
blockedFunctions = {
-- Other addons might use these, so before moving them to the Private space, we need
-- to discuss these. But Auras have no purpose for calling these
Add = true,
AddMany = true,
Delete = true,
HideOptions = true,
Rename = true,
NewAura = true,
OptionsFrame = true,
RegisterDisplay = true,
Import = true,
PreAdd = true,
RegisterRegionOptions = true,
RegisterSubRegionOptions = true,
RegisterSubRegionType = true,
@@ -400,39 +411,34 @@ local FakeWeakAurasMixin = {
ShowOptions = true,
-- Note these shouldn't exist in the WeakAuras namespace, but moving them takes a bit of effort,
-- so for now just block them and clean them up later
createSpinner = true,
ClearAndUpdateOptions = true,
CloseImportExport = true,
CreateTemplateView = true,
FillOptions = true,
FindUnusedId = true,
GetMoverSizerId = true,
GetDisplayButton = true,
Import = true,
GetNameAndIcon = true,
GetTriggerCategoryFor = true,
NewDisplayButton = true,
OpenOptions = true,
PickDisplay = true,
setTile = true,
SetMoverSizer = true,
SetModel = true,
Toggle = true,
ToggleOptions = true,
UpdateGroupOrders = true,
UpdateThumbnail = true,
validate = true,
getDefaultGlow = true,
},
blockedTables = {
AuraWarnings = true,
ModelPaths = true,
regionPrototype = true,
RealTimeProfilingWindow = true,
-- Note these shouldn't exist in the WeakAuras namespace, but moving them takes a bit of effort,
-- so for now just block them and clean them up later
data_stub = true,
displayButtons = true,
regionTypes = true,
regionOptions = true,
genericTriggerTypes = true,
newFeatureString = true,
spellCache = true,
triggerTemplates = true,
frames = true,
loadFrame = true,
unitLoadFrame = true,
loaded = true
StopMotion = true,
},
override = {
me = UnitName("player"),
@@ -445,7 +451,11 @@ local FakeWeakAurasMixin = {
L["This aura calls GetData a lot, which is a slow function."])
end
return CopyTable(WeakAuras.GetData(id))
end
end,
clones = MakeDeprecated(Private.clones, "clones",
L["Using WeakAuras.clones is deprecated. Use WeakAuras.GetRegion(id, cloneId) instead."]),
regions = MakeDeprecated(Private.regions, "regions",
L["Using WeakAuras.regions is deprecated. Use WeakAuras.GetRegion(id) instead."])
},
blocked = blocked,
setBlocked = function()
@@ -468,14 +478,14 @@ local overridden = {
WeakAuras = FakeWeakAuras
}
local env_getglobal
local exec_env = setmetatable({},
local env_getglobal_custom
local exec_env_custom = setmetatable({},
{
__index = function(t, k)
if k == "_G" then
return t
elseif k == "getglobal" then
return env_getglobal
return env_getglobal_custom
elseif k == "aura_env" then
return current_aura_env
elseif k == "DebugPrint" then
@@ -502,29 +512,88 @@ local exec_env = setmetatable({},
__metatable = false
})
function env_getglobal(k)
return exec_env[k]
function env_getglobal_custom(k)
return exec_env_custom[k]
end
local function_cache = {}
function WeakAuras.LoadFunction(string)
if function_cache[string] then
return function_cache[string]
else
local loadedFunction, errorString = loadstring(string)
if errorString then
print(errorString)
local PrivateForBuiltIn = {
ExecEnv = Private.ExecEnv
}
local env_getglobal_builtin
local exec_env_builtin = setmetatable({},
{
__index = function(t, k)
if k == "_G" then
return t
elseif k == "getglobal" then
return env_getglobal_builtin
elseif k == "aura_env" then
return current_aura_env
elseif k == "DebugPrint" then
return DebugPrint
elseif k == "Private" then
-- Built in code has access to Private.ExecEnv
-- Which contains a bunch of internal helpers
return PrivateForBuiltIn
elseif blockedFunctions[k] then
blocked(k)
return function() end
elseif blockedTables[k] then
blocked(k)
return {}
elseif overridden[k] then
return overridden[k]
else
setfenv(loadedFunction, exec_env)
local success, func = pcall(assert(loadedFunction))
if success then
function_cache[string] = func
return func
return _G[k]
end
end,
__newindex = function(table, key, value)
if _G[key] then
Private.AuraWarnings.UpdateWarning(current_uid, "OverridingGlobal", "warning",
string.format(L["The aura has overwritten the global '%s', this might affect other auras."], key))
end
rawset(table, key, value)
end,
__metatable = false
})
function env_getglobal_builtin(k)
return exec_env_builtin[k]
end
local function CreateFunctionCache(exec_env)
local cache = {}
cache.Load = function(self, string)
if self[string] then
return self[string]
else
local loadedFunction, errorString = loadstring(string)
if errorString then
print(errorString)
else
setfenv(loadedFunction, exec_env)
local success, func = pcall(assert(loadedFunction))
if success then
self[string] = func
return func
end
end
end
end
return cache
end
local function_cache_custom = CreateFunctionCache(exec_env_custom)
local function_cache_builtin = CreateFunctionCache(exec_env_builtin)
function WeakAuras.LoadFunction(string)
return function_cache_custom:Load(string)
end
function Private.LoadFunction(string)
return function_cache_builtin:Load(string)
end
function Private.GetSanitizedGlobal(key)
return exec_env[key]
return exec_env_custom[key]
end
+5 -10
View File
@@ -4,7 +4,6 @@ local AddonName, Private = ...
local WeakAuras = WeakAuras
local L = WeakAuras.L
-- keyed on uid, key, { severity, message }
local warnings = {}
local printedWarnings = {}
@@ -14,8 +13,9 @@ local function OnDelete(event, uid)
end
Private.callbacks:RegisterCallback("Delete", OnDelete)
Private.AuraWarnings = {}
local function UpdateWarning(uid, key, severity, message, printOnConsole)
function Private.AuraWarnings.UpdateWarning(uid, key, severity, message, printOnConsole)
if not uid then
WeakAuras.prettyPrint(L["Warning for unknown aura:"], message)
return
@@ -64,7 +64,7 @@ local titles = {
info = L["Information"],
sound = L["Sound"],
warning = L["Warning"],
error = L["Error"]
error = L["Error"],
}
local function AddMessages(result, messages, icon, mixedSeverity)
@@ -89,7 +89,7 @@ local function AddMessages(result, messages, icon, mixedSeverity)
return result
end
local function FormatWarnings(uid)
function Private.AuraWarnings.FormatWarnings(uid)
if not warnings[uid] then
return
end
@@ -123,7 +123,7 @@ local function FormatWarnings(uid)
return icons[maxSeverity], titles[maxSeverity], result
end
local function GetAllWarnings(uid)
function Private.AuraWarnings.GetAllWarnings(uid)
local results = {}
local thisWarnings
local data = Private.GetDataByUID(uid)
@@ -163,8 +163,3 @@ local function GetAllWarnings(uid)
end
return results
end
Private.AuraWarnings = {}
Private.AuraWarnings.UpdateWarning = UpdateWarning
Private.AuraWarnings.FormatWarnings = FormatWarnings
Private.AuraWarnings.GetAllWarnings = GetAllWarnings
+8 -8
View File
@@ -1723,7 +1723,7 @@ local function RecheckActiveForUnitType(unitType, unit, unitsToRemoveScan)
end
local Buff2Frame = CreateFrame("Frame")
WeakAuras.frames["WeakAuras Buff2 Frame"] = Buff2Frame
Private.frames["WeakAuras Buff2 Frame"] = Buff2Frame
local function EventHandler(frame, event, arg1, arg2, ...)
@@ -2340,7 +2340,7 @@ function BuffTrigger.Add(data)
local remFunc
if trigger.unit ~= "multi" and CanHaveMatchCheck(trigger) and trigger.useRem then
local remFuncStr = Private.function_strings.count:format(trigger.remOperator or ">=", tonumber(trigger.rem) or 0)
remFunc = WeakAuras.LoadFunction(remFuncStr)
remFunc = Private.LoadFunction(remFuncStr)
end
local names
@@ -2370,14 +2370,14 @@ function BuffTrigger.Add(data)
else
group_countFuncStr = Private.function_strings.count:format(">", 0)
end
groupCountFunc = WeakAuras.LoadFunction(group_countFuncStr)
groupCountFunc = Private.LoadFunction(group_countFuncStr)
end
local matchCountFunc
if HasMatchCount(trigger) and trigger.match_countOperator and trigger.match_count and tonumber(trigger.match_count) then
local count = tonumber(trigger.match_count)
local match_countFuncStr = Private.function_strings.count:format(trigger.match_countOperator, count)
matchCountFunc = WeakAuras.LoadFunction(match_countFuncStr)
matchCountFunc = Private.LoadFunction(match_countFuncStr)
elseif IsGroupTrigger(trigger) then
if trigger.showClones and not trigger.combinePerUnit then
matchCountFunc = GreaterEqualOne
@@ -2395,7 +2395,7 @@ function BuffTrigger.Add(data)
and tonumber(trigger.matchPerUnit_count) and trigger.matchPerUnit_countOperator then
local count = tonumber(trigger.matchPerUnit_count)
local match_countFuncStr = Private.function_strings.count:format(trigger.matchPerUnit_countOperator, count)
matchPerUnitCountFunc = WeakAuras.LoadFunction(match_countFuncStr)
matchPerUnitCountFunc = Private.LoadFunction(match_countFuncStr)
end
local groupTrigger = trigger.unit == "group" or trigger.unit == "raid" or trigger.unit == "party"
@@ -2407,7 +2407,7 @@ function BuffTrigger.Add(data)
local effectiveIgnoreInvisible = groupTrigger and trigger.ignoreInvisible
local effectiveHostility = trigger.unit == "nameplate" and trigger.useHostility and trigger.hostility
local effectiveNameCheck = groupTrigger and trigger.useUnitName and trigger.unitName
local effectiveNpcId = trigger.unit == "nameplate" and trigger.useNpcId and WeakAuras.ParseStringCheck(trigger.npcId)
local effectiveNpcId = trigger.unit == "nameplate" and trigger.useNpcId and Private.ExecEnv.ParseStringCheck(trigger.npcId)
if trigger.unit == "multi" then
BuffTrigger.InitMultiAura()
@@ -2471,7 +2471,7 @@ function BuffTrigger.Add(data)
matchPerUnitCountFunc = matchPerUnitCountFunc,
useAffected = unit == "group" and trigger.useAffected,
isMulti = trigger.unit == "multi",
nameChecker = effectiveNameCheck and WeakAuras.ParseNameCheck(trigger.unitName),
nameChecker = effectiveNameCheck and Private.ExecEnv.ParseNameCheck(trigger.unitName),
includePets = trigger.use_includePets and trigger.includePets or nil,
npcId = effectiveNpcId
}
@@ -3310,7 +3310,7 @@ function BuffTrigger.InitMultiAura()
end
multiAuraFrame:RegisterEvent("PLAYER_LEAVING_WORLD")
multiAuraFrame:SetScript("OnEvent", BuffTrigger.HandleMultiEvent)
WeakAuras.frames["Multi-target 2 Aura Trigger Handler"] = multiAuraFrame
Private.frames["Multi-target 2 Aura Trigger Handler"] = multiAuraFrame
end
end
+46 -46
View File
@@ -125,7 +125,7 @@ end
function WeakAuras.scheduleConditionCheck(time, uid, cloneId)
function Private.ExecEnv.ScheduleConditionCheck(time, uid, cloneId)
conditionChecksTimers.recheckTime[uid] = conditionChecksTimers.recheckTime[uid] or {}
conditionChecksTimers.recheckHandle[uid] = conditionChecksTimers.recheckHandle[uid] or {};
@@ -148,8 +148,8 @@ function WeakAuras.scheduleConditionCheck(time, uid, cloneId)
end
end
function WeakAuras.CallCustomConditionTest(uid, testFunctionNumber, ...)
local ok, result = pcall(WeakAuras.conditionHelpers[uid].customTestFunctions[testFunctionNumber], ...)
function Private.ExecEnv.CallCustomConditionTest(uid, testFunctionNumber, ...)
local ok, result = pcall(Private.ExecEnv.conditionHelpers[uid].customTestFunctions[testFunctionNumber], ...)
if not ok then
Private.GetErrorHandlerUid(uid, L["Condition Custom Text"])
elseif (ok) then
@@ -203,34 +203,34 @@ local function CreateTestForCondition(uid, input, allConditionsTemplate, usedSta
local preambleString
if preamble then
WeakAuras.conditionHelpers[uid] = WeakAuras.conditionHelpers[uid] or {}
WeakAuras.conditionHelpers[uid].preambles = WeakAuras.conditionHelpers[uid].preambles or {}
tinsert(WeakAuras.conditionHelpers[uid].preambles, preamble(value) or "");
local preambleNumber = #WeakAuras.conditionHelpers[uid].preambles
preambleString = string.format("WeakAuras.conditionHelpers[%q].preambles[%s]", uid, preambleNumber)
Private.ExecEnv.conditionHelpers[uid] = Private.ExecEnv.conditionHelpers[uid] or {}
Private.ExecEnv.conditionHelpers[uid].preambles = Private.ExecEnv.conditionHelpers[uid].preambles or {}
tinsert(Private.ExecEnv.conditionHelpers[uid].preambles, preamble(value) or "");
local preambleNumber = #Private.ExecEnv.conditionHelpers[uid].preambles
preambleString = string.format("Private.ExecEnv.conditionHelpers[%q].preambles[%s]", uid, preambleNumber)
end
if (test) then
if (value) then
WeakAuras.conditionHelpers[uid] = WeakAuras.conditionHelpers[uid] or {}
WeakAuras.conditionHelpers[uid].customTestFunctions = WeakAuras.conditionHelpers[uid].customTestFunctions or {}
tinsert(WeakAuras.conditionHelpers[uid].customTestFunctions, test);
local testFunctionNumber = #(WeakAuras.conditionHelpers[uid].customTestFunctions);
Private.ExecEnv.conditionHelpers[uid] = Private.ExecEnv.conditionHelpers[uid] or {}
Private.ExecEnv.conditionHelpers[uid].customTestFunctions = Private.ExecEnv.conditionHelpers[uid].customTestFunctions or {}
tinsert(Private.ExecEnv.conditionHelpers[uid].customTestFunctions, test);
local testFunctionNumber = #(Private.ExecEnv.conditionHelpers[uid].customTestFunctions);
local valueString = type(value) == "string" and string.format("%q", value) or value;
local opString = type(op) == "string" and string.format("%q", op) or op;
check = string.format("state and WeakAuras.CallCustomConditionTest(%q, %s, state[%s], %s, %s, %s)",
check = string.format("state and Private.ExecEnv.CallCustomConditionTest(%q, %s, state[%s], %s, %s, %s)",
uid, testFunctionNumber, trigger, valueString, (opString or "nil"), preambleString or "nil");
end
elseif (cType == "customcheck") then
if value then
local customCheck = WeakAuras.LoadFunction("return " .. value)
if customCheck then
WeakAuras.conditionHelpers[uid] = WeakAuras.conditionHelpers[uid] or {}
WeakAuras.conditionHelpers[uid].customTestFunctions = WeakAuras.conditionHelpers[uid].customTestFunctions or {}
tinsert(WeakAuras.conditionHelpers[uid].customTestFunctions, customCheck);
local testFunctionNumber = #(WeakAuras.conditionHelpers[uid].customTestFunctions);
Private.ExecEnv.conditionHelpers[uid] = Private.ExecEnv.conditionHelpers[uid] or {}
Private.ExecEnv.conditionHelpers[uid].customTestFunctions = Private.ExecEnv.conditionHelpers[uid].customTestFunctions or {}
tinsert(Private.ExecEnv.conditionHelpers[uid].customTestFunctions, customCheck);
local testFunctionNumber = #(Private.ExecEnv.conditionHelpers[uid].customTestFunctions);
check = string.format("state and WeakAuras.CallCustomConditionTest(%q, %s, state)",
check = string.format("state and Private.ExecEnv.CallCustomConditionTest(%q, %s, state)",
uid, testFunctionNumber, trigger);
end
end
@@ -297,12 +297,12 @@ local function CreateTestForCondition(uid, input, allConditionsTemplate, usedSta
if fn then
local customCheck = WeakAuras.LoadFunction(fn)
if customCheck then
WeakAuras.conditionHelpers[uid] = WeakAuras.conditionHelpers[uid] or {}
WeakAuras.conditionHelpers[uid].customTestFunctions = WeakAuras.conditionHelpers[uid].customTestFunctions or {}
tinsert(WeakAuras.conditionHelpers[uid].customTestFunctions, customCheck);
local testFunctionNumber = #(WeakAuras.conditionHelpers[uid].customTestFunctions);
Private.ExecEnv.conditionHelpers[uid] = Private.ExecEnv.conditionHelpers[uid] or {}
Private.ExecEnv.conditionHelpers[uid].customTestFunctions = Private.ExecEnv.conditionHelpers[uid].customTestFunctions or {}
tinsert(Private.ExecEnv.conditionHelpers[uid].customTestFunctions, customCheck);
local testFunctionNumber = #(Private.ExecEnv.conditionHelpers[uid].customTestFunctions);
check = string.format("state and WeakAuras.CallCustomConditionTest(%q, %s, state)",
check = string.format("state and Private.ExecEnv.CallCustomConditionTest(%q, %s, state)",
uid, testFunctionNumber, trigger);
end
end
@@ -423,17 +423,17 @@ local function CreateActivateCondition(ret, id, condition, conditionNumber, prop
elseif (propertyData.action) then
local pathToCustomFunction = "nil";
local pathToFormatter = "nil"
if (WeakAuras.customConditionsFunctions[id]
and WeakAuras.customConditionsFunctions[id][conditionNumber]
and WeakAuras.customConditionsFunctions[id][conditionNumber].changes
and WeakAuras.customConditionsFunctions[id][conditionNumber].changes[changeNum]) then
pathToCustomFunction = string.format("WeakAuras.customConditionsFunctions[%q][%s].changes[%s]", id, conditionNumber, changeNum);
if (Private.ExecEnv.customConditionsFunctions[id]
and Private.ExecEnv.customConditionsFunctions[id][conditionNumber]
and Private.ExecEnv.customConditionsFunctions[id][conditionNumber].changes
and Private.ExecEnv.customConditionsFunctions[id][conditionNumber].changes[changeNum]) then
pathToCustomFunction = string.format("Private.ExecEnv.customConditionsFunctions[%q][%s].changes[%s]", id, conditionNumber, changeNum);
end
if WeakAuras.conditionTextFormatters[id]
and WeakAuras.conditionTextFormatters[id][conditionNumber]
and WeakAuras.conditionTextFormatters[id][conditionNumber].changes
and WeakAuras.conditionTextFormatters[id][conditionNumber].changes[changeNum] then
pathToFormatter = string.format("WeakAuras.conditionTextFormatters[%q][%s].changes[%s]", id, conditionNumber, changeNum);
if Private.ExecEnv.conditionTextFormatters[id]
and Private.ExecEnv.conditionTextFormatters[id][conditionNumber]
and Private.ExecEnv.conditionTextFormatters[id][conditionNumber].changes
and Private.ExecEnv.conditionTextFormatters[id][conditionNumber].changes[changeNum] then
pathToFormatter = string.format("Private.ExecEnv.conditionTextFormatters[%q][%s].changes[%s]", id, conditionNumber, changeNum);
end
ret = ret .. " region:" .. propertyData.action .. "(" .. formatValueForAssignment(propertyData.type, change.value, pathToCustomFunction, pathToFormatter) .. ")" .. "\n";
if (debug) then ret = ret .. " print('# " .. propertyData.action .. "(" .. formatValueForAssignment(propertyData.type, change.value, pathToCustomFunction, pathToFormatter) .. "')\n"; end
@@ -489,7 +489,7 @@ end
function Private.GetProperties(data)
local properties;
local propertiesFunction = WeakAuras.regionTypes[data.regionType] and WeakAuras.regionTypes[data.regionType].properties;
local propertiesFunction = Private.regionTypes[data.regionType] and Private.regionTypes[data.regionType].properties;
if (type(propertiesFunction) == "function") then
properties = propertiesFunction(data);
elseif propertiesFunction then
@@ -505,7 +505,7 @@ end
function Private.LoadConditionPropertyFunctions(data)
local id = data.id;
if (data.conditions) then
WeakAuras.customConditionsFunctions[id] = {};
Private.ExecEnv.customConditionsFunctions[id] = {};
for conditionNumber, condition in ipairs(data.conditions) do
if (condition.changes) then
for changeIndex, change in ipairs(condition.changes) do
@@ -519,9 +519,9 @@ function Private.LoadConditionPropertyFunctions(data)
end
local customFunc = WeakAuras.LoadFunction(prefix .. custom .. suffix);
if (customFunc) then
WeakAuras.customConditionsFunctions[id][conditionNumber] = WeakAuras.customConditionsFunctions[id][conditionNumber] or {};
WeakAuras.customConditionsFunctions[id][conditionNumber].changes = WeakAuras.customConditionsFunctions[id][conditionNumber].changes or {};
WeakAuras.customConditionsFunctions[id][conditionNumber].changes[changeIndex] = customFunc;
Private.ExecEnv.customConditionsFunctions[id][conditionNumber] = Private.ExecEnv.customConditionsFunctions[id][conditionNumber] or {};
Private.ExecEnv.customConditionsFunctions[id][conditionNumber].changes = Private.ExecEnv.customConditionsFunctions[id][conditionNumber].changes or {};
Private.ExecEnv.customConditionsFunctions[id][conditionNumber].changes[changeIndex] = customFunc;
end
end
if change.property == "chat" then
@@ -533,10 +533,10 @@ function Private.LoadConditionPropertyFunctions(data)
return change.value[fullKey]
end
local formatters = change.value and Private.CreateFormatters(change.value.message, getter, true)
WeakAuras.conditionTextFormatters[id] = WeakAuras.conditionTextFormatters[id] or {}
WeakAuras.conditionTextFormatters[id][conditionNumber] = WeakAuras.conditionTextFormatters[id][conditionNumber] or {};
WeakAuras.conditionTextFormatters[id][conditionNumber].changes = WeakAuras.conditionTextFormatters[id][conditionNumber].changes or {};
WeakAuras.conditionTextFormatters[id][conditionNumber].changes[changeIndex] = formatters;
Private.ExecEnv.conditionTextFormatters[id] = Private.ExecEnv.conditionTextFormatters[id] or {}
Private.ExecEnv.conditionTextFormatters[id][conditionNumber] = Private.ExecEnv.conditionTextFormatters[id][conditionNumber] or {};
Private.ExecEnv.conditionTextFormatters[id][conditionNumber].changes = Private.ExecEnv.conditionTextFormatters[id][conditionNumber].changes or {};
Private.ExecEnv.conditionTextFormatters[id][conditionNumber].changes[changeIndex] = formatters;
end
end
end
@@ -620,7 +620,7 @@ local function ConstructConditionFunction(data)
ret = ret .. " if (not hideRegion) then\n"
local recheckCode = ""
if (data.conditions) then
WeakAuras.conditionHelpers[data.uid] = nil
Private.ExecEnv.conditionHelpers[data.uid] = nil
for conditionNumber, condition in ipairs(data.conditions) do
local nextIsLinked = data.conditions[conditionNumber + 1] and data.conditions[conditionNumber + 1].linked
local additionalRecheckCode
@@ -634,7 +634,7 @@ local function ConstructConditionFunction(data)
ret = ret .. " end\n";
ret = ret .. " if (recheckTime) then\n"
ret = ret .. " WeakAuras.scheduleConditionCheck(recheckTime, uid, cloneId);\n"
ret = ret .. " Private.ExecEnv.ScheduleConditionCheck(recheckTime, uid, cloneId);\n"
ret = ret .. " end\n"
local properties = Private.GetProperties(data);
@@ -697,7 +697,7 @@ function Private.LoadConditionFunction(data)
CancelTimers(data.uid)
local checkConditionsFuncStr = ConstructConditionFunction(data);
local checkCondtionsFunc = checkConditionsFuncStr and WeakAuras.LoadFunction(checkConditionsFuncStr);
local checkCondtionsFunc = checkConditionsFuncStr and Private.LoadFunction(checkConditionsFuncStr)
checkConditions[data.uid] = checkCondtionsFunc;
end
@@ -845,7 +845,7 @@ function Private.RegisterForGlobalConditions(uid)
dynamicConditionsFrame = CreateFrame("Frame");
dynamicConditionsFrame:SetScript("OnEvent", handleDynamicConditions);
dynamicConditionsFrame.units = {}
WeakAuras.frames["Rerun Conditions Frame"] = dynamicConditionsFrame
Private.frames["Rerun Conditions Frame"] = dynamicConditionsFrame
end
for event in pairs(register) do
+30 -31
View File
@@ -74,7 +74,6 @@ local loaded_events = {}
local loaded_unit_events = {};
local watched_trigger_events = Private.watched_trigger_events
local loaded_auras = {}; -- id to bool map
local timers = WeakAuras.timers;
-- Local functions
local LoadEvent, HandleEvent, HandleUnitEvent, TestForTriState, TestForToggle, TestForLongString, TestForMultiSelect
@@ -1089,7 +1088,7 @@ local genericTriggerRegisteredEvents = {};
local genericTriggerRegisteredUnitEvents = {};
local frame = CreateFrame("Frame");
frame.unitFrames = {};
WeakAuras.frames["WeakAuras Generic Trigger Frame"] = frame;
Private.frames["WeakAuras Generic Trigger Frame"] = frame;
frame:RegisterEvent("PLAYER_ENTERING_WORLD");
genericTriggerRegisteredEvents["PLAYER_ENTERING_WORLD"] = true;
if WeakAuras.isAwesomeEnabled() then
@@ -1392,7 +1391,7 @@ function GenericTrigger.Add(data, region)
triggerFuncStr = ConstructFunction(prototype, trigger);
statesParameter = prototype.statesParameter;
triggerFunc = WeakAuras.LoadFunction(triggerFuncStr);
triggerFunc = Private.LoadFunction(triggerFuncStr);
durationFunc = prototype.durationFunc;
nameFunc = prototype.nameFunc;
@@ -1623,7 +1622,7 @@ do
local update_clients = {};
local update_clients_num = 0;
local update_frame = nil
WeakAuras.frames["Custom Trigger Every Frame Updater"] = update_frame;
Private.frames["Custom Trigger Every Frame Updater"] = update_frame;
local updating = false;
function Private.RegisterEveryFrameUpdate(id)
@@ -2084,9 +2083,9 @@ do
local spellDetails = {}
function WeakAuras.InitCooldownReady()
function Private.InitCooldownReady()
cdReadyFrame = CreateFrame("Frame");
WeakAuras.frames["Cooldown Trigger Handler"] = cdReadyFrame
Private.frames["Cooldown Trigger Handler"] = cdReadyFrame
cdReadyFrame:RegisterEvent("RUNE_POWER_UPDATE");
cdReadyFrame:RegisterEvent("RUNE_TYPE_UPDATE");
cdReadyFrame:RegisterEvent("PLAYER_TALENT_UPDATE");
@@ -2504,13 +2503,13 @@ do
function WeakAuras.WatchGCD()
if not(cdReadyFrame) then
WeakAuras.InitCooldownReady();
Private.InitCooldownReady();
end
end
function WeakAuras.WatchRuneCooldown(id)
if not(cdReadyFrame) then
WeakAuras.InitCooldownReady();
Private.InitCooldownReady();
end
if not id or id == 0 then return end
@@ -2538,7 +2537,7 @@ do
function WeakAuras.WatchSpellCooldown(id, ignoreRunes)
if not(cdReadyFrame) then
WeakAuras.InitCooldownReady();
Private.InitCooldownReady();
end
if not id or id == 0 then return end
@@ -2570,7 +2569,7 @@ do
function WeakAuras.WatchItemCooldown(id)
if not(cdReadyFrame) then
WeakAuras.InitCooldownReady();
Private.InitCooldownReady();
end
if not id or id == 0 then return end
@@ -2599,7 +2598,7 @@ do
function WeakAuras.WatchItemSlotCooldown(id)
if not(cdReadyFrame) then
WeakAuras.InitCooldownReady();
Private.InitCooldownReady();
end
if not id or id == 0 then return end
@@ -2644,7 +2643,7 @@ function WeakAuras.WatchUnitChange(unit)
watchUnitChange.nameplateFaction = {}
watchUnitChange.raidmark = {}
WeakAuras.frames["Unit Change Frame"] = watchUnitChange;
Private.frames["Unit Change Frame"] = watchUnitChange;
watchUnitChange:RegisterEvent("PLAYER_TARGET_CHANGED")
watchUnitChange:RegisterEvent("PLAYER_FOCUS_CHANGED");
watchUnitChange:RegisterEvent("PLAYER_ROLES_ASSIGNED");
@@ -2916,7 +2915,7 @@ do
end
end
function WeakAuras.DBMTimerMatches(timerId, id, message, operator, spellId, dbmType, count)
function Private.ExecEnv.DBMTimerMatches(timerId, id, message, operator, spellId, dbmType, count)
if not bars[timerId] then
return false
end
@@ -2967,7 +2966,7 @@ do
function WeakAuras.GetDBMTimer(id, message, operator, spellId, extendTimer, dbmType, count)
local bestMatch
for timerId, bar in pairs(bars) do
if WeakAuras.DBMTimerMatches(timerId, id, message, operator, spellId, dbmType, count)
if Private.ExecEnv.DBMTimerMatches(timerId, id, message, operator, spellId, dbmType, count)
and (bestMatch == nil or bar.expirationTime < bestMatch.expirationTime)
and bar.expirationTime + extendTimer > GetTime()
then
@@ -2977,7 +2976,7 @@ do
return bestMatch
end
function WeakAuras.CopyBarToState(bar, states, id, extendTimer)
function Private.ExecEnv.CopyBarToState(bar, states, id, extendTimer)
extendTimer = extendTimer or 0
if extendTimer + bar.duration < 0 then return end
states[id] = states[id] or {}
@@ -3021,7 +3020,7 @@ do
scheduled_scans[fireTime] = nil
WeakAuras.ScanEvents("DBM_TimerUpdate")
end
function WeakAuras.ScheduleDbmCheck(fireTime)
function Private.ExecEnv.ScheduleDbmCheck(fireTime)
if not scheduled_scans[fireTime] then
scheduled_scans[fireTime] = timer:ScheduleTimer(doDbmScan, fireTime - GetTime() + 0.1, fireTime)
end
@@ -3126,7 +3125,7 @@ do
WeakAuras.RegisterBigWigsCallback("BigWigs_OnBossDisable")
end
function WeakAuras.CopyBigWigsTimerToState(bar, states, id, extendTimer)
function Private.ExecEnv.CopyBigWigsTimerToState(bar, states, id, extendTimer)
extendTimer = extendTimer or 0
if extendTimer + bar.duration < 0 then return end
states[id] = states[id] or {}
@@ -3153,7 +3152,7 @@ do
end
end
function WeakAuras.BigWigsTimerMatches(id, message, operator, spellId, emphasized, count, cast)
function Private.ExecEnv.BigWigsTimerMatches(id, message, operator, spellId, emphasized, count, cast)
if not bars[id] then
return false
end
@@ -3201,7 +3200,7 @@ do
function WeakAuras.GetBigWigsTimer(text, operator, spellId, extendTimer, emphasized, count, cast)
local bestMatch
for id, bar in pairs(bars) do
if WeakAuras.BigWigsTimerMatches(id, text, operator, spellId, emphasized, count, cast)
if Private.ExecEnv.BigWigsTimerMatches(id, text, operator, spellId, emphasized, count, cast)
and (bestMatch == nil or bar.expirationTime < bestMatch.expirationTime)
and bar.expirationTime + extendTimer > GetTime()
then
@@ -3218,14 +3217,14 @@ do
WeakAuras.ScanEvents("BigWigs_Timer_Update")
end
function WeakAuras.ScheduleBigWigsCheck(fireTime)
function Private.ExecEnv.ScheduleBigWigsCheck(fireTime)
if not scheduled_scans[fireTime] then
scheduled_scans[fireTime] = timer:ScheduleTimer(doBigWigsScan, fireTime - GetTime() + 0.1, fireTime)
end
end
end
function WeakAuras.CheckTotemName(totemName, triggerTotemName, triggerTotemPattern, triggerTotemOperator)
function Private.ExecEnv.CheckTotemName(totemName, triggerTotemName, triggerTotemPattern, triggerTotemOperator)
if not totemName or totemName == "" then
return false
end
@@ -3265,7 +3264,7 @@ do
local oh_icon = GetInventoryItemTexture("player", oh);
local tenchFrame = nil
WeakAuras.frames["Temporary Enchant Handler"] = tenchFrame;
Private.frames["Temporary Enchant Handler"] = tenchFrame;
local tenchTip;
function WeakAuras.TenchInit()
@@ -3347,7 +3346,7 @@ end
-- Pets
do
local petFrame = nil
WeakAuras.frames["Pet Use Handler"] = petFrame;
Private.frames["Pet Use Handler"] = petFrame;
function WeakAuras.WatchForPetDeath()
if not(petFrame) then
petFrame = CreateFrame("Frame");
@@ -3365,7 +3364,7 @@ end
-- Cast Latency
do
local castLatencyFrame = nil
WeakAuras.frames["Cast Latency Handler"] = castLatencyFrame
Private.frames["Cast Latency Handler"] = castLatencyFrame
function WeakAuras.WatchForCastLatency()
if not castLatencyFrame then
castLatencyFrame = CreateFrame("Frame")
@@ -3431,7 +3430,7 @@ if WeakAuras.isAwesomeEnabled() then
end
end
WeakAuras.frames["Nameplate Target Handler"] = nameplateTargetFrame
Private.frames["Nameplate Target Handler"] = nameplateTargetFrame
function WeakAuras.WatchForNameplateTargetChange()
if not nameplateTargetFrame then
nameplateTargetFrame = CreateFrame("Frame")
@@ -3468,7 +3467,7 @@ do
function WeakAuras.WatchForMounts()
if not(mountedFrame) then
mountedFrame = CreateFrame("Frame");
WeakAuras.frames["Mount Use Handler"] = mountedFrame;
Private.frames["Mount Use Handler"] = mountedFrame;
mountedFrame:RegisterEvent("COMPANION_UPDATE");
mountedFrame:SetScript("OnEvent", function()
elapsed = 0;
@@ -3495,7 +3494,7 @@ do
function WeakAuras.WatchPlayerMoveSpeed()
if not (playerMovingFrame) then
playerMovingFrame = CreateFrame("Frame");
WeakAuras.frames["Player Moving Frame"] = playerMovingFrame;
Private.frames["Player Moving Frame"] = playerMovingFrame;
end
playerMovingFrame.speed = GetUnitSpeed("player")
playerMovingFrame:SetScript("OnUpdate", PlayerMoveSpeedUpdate)
@@ -3579,7 +3578,7 @@ do
function WeakAuras.WatchNamePlates()
if not(watchNameplates) then
watchNameplates = CreateFrame("Frame")
WeakAuras.frames["Watch NamePlates Frames"] = watchNameplates
Private.frames["Watch NamePlates Frames"] = watchNameplates
end
watchNameplates:SetScript("OnUpdate", nameplatesUpdate)
end
@@ -3627,7 +3626,7 @@ do
function WeakAuras.WatchQueuedAction()
if not(queuedActionFrame) then
queuedActionFrame = CreateFrame("Frame");
WeakAuras.frames["Queued Action Frame"] = queuedActionFrame
Private.frames["Queued Action Frame"] = queuedActionFrame
for slotID = 1, 120 do
local spellID = GetActionSpellID(slotID)
if spellID then
@@ -3663,7 +3662,7 @@ do
scheduled_scans[event][fireTime] = nil;
WeakAuras.ScanEvents(event);
end
function WeakAuras.ScheduleScan(fireTime, event)
function Private.ExecEnv.ScheduleScan(fireTime, event)
event = event or "COOLDOWN_REMAINING_CHECK"
scheduled_scans[event] = scheduled_scans[event] or {}
if not(scheduled_scans[event][fireTime]) then
@@ -3684,7 +3683,7 @@ do
WeakAuras.ScanEvents("CAST_REMAINING_CHECK_" .. string.lower(unit), unit);
end
end
function WeakAuras.ScheduleCastCheck(fireTime, unit)
function Private.ExecEnv.ScheduleCastCheck(fireTime, unit)
scheduled_scans[unit] = scheduled_scans[unit] or {}
if not(scheduled_scans[unit][fireTime]) then
scheduled_scans[unit][fireTime] = timer:ScheduleTimer(doCastScan, fireTime - GetTime() + 0.1, fireTime, unit);
+3 -1
View File
@@ -1,7 +1,7 @@
local AddonName, Private = ...
WeakAuras = {}
WeakAuras.L = {}
WeakAuras.frames = {}
Private.frames = {}
WeakAuras.normalWidth = 1.3
WeakAuras.halfWidth = WeakAuras.normalWidth / 2
@@ -117,6 +117,8 @@ end
function Private.StopProfileUID()
end
Private.ExecEnv = {}
-- If WeakAuras shuts down due to being installed on the wrong target, keep the bindings from erroring
function WeakAuras.StartProfile()
end
+1 -1
View File
@@ -13,7 +13,7 @@ profileData.auras = {}
local currentProfileState, ProfilingTimer
local RealTimeProfilingWindow = CreateFrame("Button", nil, UIParent)
WeakAuras.frames["RealTime Profiling Window"] = RealTimeProfilingWindow
Private.frames["RealTime Profiling Window"] = RealTimeProfilingWindow
RealTimeProfilingWindow.width = 500
RealTimeProfilingWindow.height = 300
RealTimeProfilingWindow.barHeight = 20
+84 -84
View File
@@ -644,7 +644,7 @@ function WeakAuras.ValidateNumericOrPercent(info, val)
return true
end
function WeakAuras.CheckGroupMemberType(loadSetting, currentFlags)
function Private.ExecEnv.CheckGroupMemberType(loadSetting, currentFlags)
if loadSetting == "LEADER" then
return bit.band(currentFlags, 1) == 1
elseif loadSetting == "ASSIST" then
@@ -654,13 +654,13 @@ function WeakAuras.CheckGroupMemberType(loadSetting, currentFlags)
end
end
function WeakAuras.CheckChargesDirection(direction, triggerDirection)
function Private.ExecEnv.CheckChargesDirection(direction, triggerDirection)
return triggerDirection == "CHANGED"
or (triggerDirection == "GAINED" and direction > 0)
or (triggerDirection == "LOST" and direction < 0)
end
function WeakAuras.CheckCombatLogFlags(flags, flagToCheck)
function Private.ExecEnv.CheckCombatLogFlags(flags, flagToCheck)
if type(flags) ~= "number" then return end
if(flagToCheck == "Mine") then
return bit.band(flags, COMBATLOG_OBJECT_AFFILIATION_MINE) > 0
@@ -673,7 +673,7 @@ function WeakAuras.CheckCombatLogFlags(flags, flagToCheck)
end
end
function WeakAuras.CheckCombatLogFlagsReaction(flags, flagToCheck)
function Private.ExecEnv.CheckCombatLogFlagsReaction(flags, flagToCheck)
if type(flags) ~= "number" then return end
if (flagToCheck == "Hostile") then
return bit.band(flags, 64) ~= 0;
@@ -692,14 +692,14 @@ local objectTypeToBit = {
Player = 1024,
}
function WeakAuras.CheckCombatLogFlagsObjectType(flags, flagToCheck)
function Private.ExecEnv.CheckCombatLogFlagsObjectType(flags, flagToCheck)
if type(flags) ~= "number" then return end
local bitToCheck = objectTypeToBit[flagToCheck]
if not bitToCheck then return end
return bit.band(flags, bitToCheck) ~= 0;
end
function WeakAuras.CheckRaidFlags(flags, flagToCheck)
function Private.ExecEnv.CheckRaidFlags(flags, flagToCheck)
flagToCheck = tonumber(flagToCheck)
if not flagToCheck or not flags then return end --bailout
if flagToCheck == 0 then --no raid mark
@@ -893,7 +893,7 @@ Private.load_prototype = {
type = "string",
multiline = true,
test = "nameRealmChecker:Check(player, realm)",
preamble = "local nameRealmChecker = WeakAuras.ParseNameCheck(%q)",
preamble = "local nameRealmChecker = Private.ExecEnv.ParseNameCheck(%q)",
desc = constants.nameRealmFilterDesc,
},
{
@@ -902,7 +902,7 @@ Private.load_prototype = {
type = "string",
multiline = true,
test = "not nameRealmIgnoreChecker:Check(player, realm)",
preamble = "local nameRealmIgnoreChecker = WeakAuras.ParseNameCheck(%q)",
preamble = "local nameRealmIgnoreChecker = Private.ExecEnv.ParseNameCheck(%q)",
desc = constants.nameRealmFilterDesc,
},
{
@@ -1014,7 +1014,7 @@ Private.load_prototype = {
init = "arg",
events = {"PARTY_LEADER_CHANGED", "RAID_ROSTER_UPDATE"},
values = "group_member_types",
test = "WeakAuras.CheckGroupMemberType(%s, group_leader)",
test = "Private.ExecEnv.CheckGroupMemberType(%s, group_leader)",
optional = true,
},
{
@@ -1028,7 +1028,7 @@ Private.load_prototype = {
type = "string",
multiline = true,
init = "arg",
preamble = "local zoneChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local zoneChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "zoneChecker:Check(zone)",
events = {"ZONE_CHANGED", "ZONE_CHANGED_INDOORS", "ZONE_CHANGED_NEW_AREA", "VEHICLE_UPDATE", "WA_DELAYED_PLAYER_ENTERING_WORLD" },
desc = function()
@@ -1055,7 +1055,7 @@ Private.load_prototype = {
type = "string",
multiline = true,
init = "arg",
preamble = "local subzoneChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local subzoneChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "subzoneChecker:Check(subzone)",
events = { "ZONE_CHANGED", "ZONE_CHANGED_INDOORS", "ZONE_CHANGED_NEW_AREA", "VEHICLE_UPDATE", "WA_DELAYED_PLAYER_ENTERING_WORLD" },
desc = function()
@@ -1427,11 +1427,11 @@ Private.event_prototypes = {
desc = constants.nameRealmFilterDesc,
type = "string",
multiline = true,
preamble = "local nameRealmChecker = WeakAuras.ParseNameCheck(%q)",
preamble = "local nameRealmChecker = Private.ExecEnv.ParseNameCheck(%q)",
test = "nameRealmChecker:Check(name, realm)",
conditionType = "string",
conditionPreamble = function(input)
return WeakAuras.ParseNameCheck(input)
return Private.ExecEnv.ParseNameCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.name, state.realm)
@@ -1553,10 +1553,10 @@ Private.event_prototypes = {
store = true,
init = "tostring(tonumber(string.sub(UnitGUID(unit) or '', 8, 12), 16) or '')",
conditionType = "string",
preamble = "local npcIdChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local npcIdChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "npcIdChecker:Check(npcId)",
conditionPreamble = function(input)
return WeakAuras.ParseStringCheck(input)
return Private.ExecEnv.ParseStringCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.npcId)
@@ -1895,11 +1895,11 @@ Private.event_prototypes = {
display = L["Unit Name/Realm"],
type = "string",
multiline = true,
preamble = "local nameRealmChecker = WeakAuras.ParseNameCheck(%q)",
preamble = "local nameRealmChecker = Private.ExecEnv.ParseNameCheck(%q)",
test = "nameRealmChecker:Check(name, realm)",
conditionType = "string",
conditionPreamble = function(input)
return WeakAuras.ParseNameCheck(input)
return Private.ExecEnv.ParseNameCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.name, state.realm)
@@ -1915,10 +1915,10 @@ Private.event_prototypes = {
store = true,
init = "tostring(tonumber(string.sub(UnitGUID(unit) or '', 8, 12), 16) or '')",
conditionType = "string",
preamble = "local npcIdChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local npcIdChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "npcIdChecker:Check(npcId)",
conditionPreamble = function(input)
return WeakAuras.ParseStringCheck(input)
return Private.ExecEnv.ParseStringCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.npcId)
@@ -2235,11 +2235,11 @@ Private.event_prototypes = {
display = L["Unit Name/Realm"],
type = "string",
multiline = true,
preamble = "local nameRealmChecker = WeakAuras.ParseNameCheck(%q)",
preamble = "local nameRealmChecker = Private.ExecEnv.ParseNameCheck(%q)",
test = "nameRealmChecker:Check(name, realm)",
conditionType = "string",
conditionPreamble = function(input)
return WeakAuras.ParseNameCheck(input)
return Private.ExecEnv.ParseNameCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.name, state.realm)
@@ -2255,10 +2255,10 @@ Private.event_prototypes = {
store = true,
init = "tostring(tonumber(string.sub(UnitGUID(unit) or '', 8, 12), 16) or '')",
conditionType = "string",
preamble = "local npcIdChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local npcIdChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "npcIdChecker:Check(npcId)",
conditionPreamble = function(input)
return WeakAuras.ParseStringCheck(input)
return Private.ExecEnv.ParseStringCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.npcId)
@@ -2424,7 +2424,7 @@ Private.event_prototypes = {
init = "arg",
store = true,
conditionType = "string",
preamble = "local sourceNameChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local sourceNameChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "sourceNameChecker:Check(sourceName)",
desc = L["Supports multiple entries, separated by commas"],
},
@@ -2436,10 +2436,10 @@ Private.event_prototypes = {
init = "tostring(tonumber(string.sub(sourceGUID or '', 8, 12), 16) or '')",
store = true,
conditionType = "string",
preamble = "local sourceNpcIdChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local sourceNpcIdChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "sourceNpcIdChecker:Check(sourceNpcId)",
conditionPreamble = function(input)
return WeakAuras.ParseStringCheck(input)
return Private.ExecEnv.ParseStringCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.sourceNpcId)
@@ -2457,10 +2457,10 @@ Private.event_prototypes = {
values = "combatlog_flags_check_type",
init = "arg",
store = true,
test = "WeakAuras.CheckCombatLogFlags(sourceFlags, %q)",
test = "Private.ExecEnv.CheckCombatLogFlags(sourceFlags, %q)",
conditionType = "select",
conditionTest = function(state, needle)
return state and state.show and WeakAuras.CheckCombatLogFlags(state.sourceFlags, needle);
return state and state.show and Private.ExecEnv.CheckCombatLogFlags(state.sourceFlags, needle);
end
},
{
@@ -2468,10 +2468,10 @@ Private.event_prototypes = {
display = L["Source Reaction"],
type = "select",
values = "combatlog_flags_check_reaction",
test = "WeakAuras.CheckCombatLogFlagsReaction(sourceFlags, %q)",
test = "Private.ExecEnv.CheckCombatLogFlagsReaction(sourceFlags, %q)",
conditionType = "select",
conditionTest = function(state, needle)
return state and state.show and WeakAuras.CheckCombatLogFlagsReaction(state.sourceFlags, needle);
return state and state.show and Private.ExecEnv.CheckCombatLogFlagsReaction(state.sourceFlags, needle);
end
},
{
@@ -2479,10 +2479,10 @@ Private.event_prototypes = {
display = L["Source Object Type"],
type = "select",
values = "combatlog_flags_check_object_type",
test = "WeakAuras.CheckCombatLogFlagsObjectType(sourceFlags, %q)",
test = "Private.ExecEnv.CheckCombatLogFlagsObjectType(sourceFlags, %q)",
conditionType = "select",
conditionTest = function(state, needle)
return state and state.show and WeakAuras.CheckCombatLogFlagsObjectType(state.sourceFlags, needle);
return state and state.show and Private.ExecEnv.CheckCombatLogFlagsObjectType(state.sourceFlags, needle);
end
},
{
@@ -2492,10 +2492,10 @@ Private.event_prototypes = {
values = "combatlog_raid_mark_check_type",
init = "arg",
store = true,
test = "WeakAuras.CheckRaidFlags(sourceRaidFlags, %q)",
test = "Private.ExecEnv.CheckRaidFlags(sourceRaidFlags, %q)",
conditionType = "select",
conditionTest = function(state, needle)
return state and state.show and WeakAuras.CheckRaidFlags(state.sourceRaidFlags, needle);
return state and state.show and Private.ExecEnv.CheckRaidFlags(state.sourceRaidFlags, needle);
end
},
{
@@ -2553,7 +2553,7 @@ Private.event_prototypes = {
init = "arg",
store = true,
conditionType = "string",
preamble = "local destNameChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local destNameChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "destNameChecker:Check(destName)",
desc = L["Supports multiple entries, separated by commas"],
enable = function(trigger)
@@ -2568,10 +2568,10 @@ Private.event_prototypes = {
init = "tostring(tonumber(string.sub(destGUID or '', 8, 12), 16) or '')",
store = true,
conditionType = "string",
preamble = "local destNpcIdChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local destNpcIdChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "destNpcIdChecker:Check(destNpcId)",
conditionPreamble = function(input)
return WeakAuras.ParseStringCheck(input)
return Private.ExecEnv.ParseStringCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.destNpcId)
@@ -2594,10 +2594,10 @@ Private.event_prototypes = {
values = "combatlog_flags_check_type",
init = "arg",
store = true,
test = "WeakAuras.CheckCombatLogFlags(destFlags, %q)",
test = "Private.ExecEnv.CheckCombatLogFlags(destFlags, %q)",
conditionType = "select",
conditionTest = function(state, needle)
return state and state.show and WeakAuras.CheckCombatLogFlags(state.destFlags, needle);
return state and state.show and Private.ExecEnv.CheckCombatLogFlags(state.destFlags, needle);
end,
enable = function(trigger)
return not (trigger.subeventPrefix == "SPELL" and trigger.subeventSuffix == "_CAST_START");
@@ -2608,10 +2608,10 @@ Private.event_prototypes = {
display = L["Destination Reaction"],
type = "select",
values = "combatlog_flags_check_reaction",
test = "WeakAuras.CheckCombatLogFlagsReaction(destFlags, %q)",
test = "Private.ExecEnv.CheckCombatLogFlagsReaction(destFlags, %q)",
conditionType = "select",
conditionTest = function(state, needle)
return state and state.show and WeakAuras.CheckCombatLogFlagsReaction(state.destFlags, needle);
return state and state.show and Private.ExecEnv.CheckCombatLogFlagsReaction(state.destFlags, needle);
end,
enable = function(trigger)
return not (trigger.subeventPrefix == "SPELL" and trigger.subeventSuffix == "_CAST_START");
@@ -2622,10 +2622,10 @@ Private.event_prototypes = {
display = L["Destination Object Type"],
type = "select",
values = "combatlog_flags_check_object_type",
test = "WeakAuras.CheckCombatLogFlagsObjectType(destFlags, %q)",
test = "Private.ExecEnv.CheckCombatLogFlagsObjectType(destFlags, %q)",
conditionType = "select",
conditionTest = function(state, needle)
return state and state.show and WeakAuras.CheckCombatLogFlagsObjectType(state.destFlags, needle);
return state and state.show and Private.ExecEnv.CheckCombatLogFlagsObjectType(state.destFlags, needle);
end,
enable = function(trigger)
return not (trigger.subeventPrefix == "SPELL" and trigger.subeventSuffix == "_CAST_START");
@@ -2643,10 +2643,10 @@ Private.event_prototypes = {
values = "combatlog_raid_mark_check_type",
init = "arg",
store = true,
test = "WeakAuras.CheckRaidFlags(destRaidFlags, %q)",
test = "Private.ExecEnv.CheckRaidFlags(destRaidFlags, %q)",
conditionType = "select",
conditionTest = function(state, needle)
return state and state.show and WeakAuras.CheckRaidFlags(state.destRaidFlags, needle);
return state and state.show and Private.ExecEnv.CheckRaidFlags(state.destRaidFlags, needle);
end,
enable = function(trigger)
return not (trigger.subeventPrefix == "SPELL" and trigger.subeventSuffix == "_CAST_START");
@@ -3087,7 +3087,7 @@ Private.event_prototypes = {
remaining = expirationTime - GetTime();
local remainingCheck = %s;
if(remaining >= remainingCheck and remaining > 0) then
WeakAuras.ScheduleScan(expirationTime - remainingCheck);
Private.ExecEnv.ScheduleScan(expirationTime - remainingCheck);
end
end
]];
@@ -3390,12 +3390,12 @@ Private.event_prototypes = {
type = "select",
values = "charges_change_type",
init = "arg",
test = "WeakAuras.CheckChargesDirection(direction, %q)",
test = "Private.ExecEnv.CheckChargesDirection(direction, %q)",
store = true,
conditionType = "select",
conditionValues = "charges_change_condition_type";
conditionTest = function(state, needle)
return state and state.show and state.direction and WeakAuras.CheckChargesDirection(state.direction, needle)
return state and state.show and state.direction and Private.ExecEnv.CheckChargesDirection(state.direction, needle)
end,
},
{
@@ -3471,7 +3471,7 @@ Private.event_prototypes = {
local remaining = expirationTime > 0 and (expirationTime - GetTime()) or 0;
local remainingCheck = %s;
if(remaining >= remainingCheck and remaining > 0) then
WeakAuras.ScheduleScan(expirationTime - remainingCheck);
Private.ExecEnv.ScheduleScan(expirationTime - remainingCheck);
end
]];
ret = ret..ret2:format(tonumber(trigger.remaining or 0) or 0);
@@ -3639,7 +3639,7 @@ Private.event_prototypes = {
local remaining = expirationTime > 0 and (expirationTime - GetTime()) or 0;
local remainingCheck = %s;
if(remaining >= remainingCheck and remaining > 0) then
WeakAuras.ScheduleScan(expirationTime - remainingCheck);
Private.ExecEnv.ScheduleScan(expirationTime - remainingCheck);
end
]];
ret = ret..ret2:format(tonumber(trigger.remaining or 0) or 0);
@@ -3946,7 +3946,7 @@ Private.event_prototypes = {
if triggerUseRemaining then
local remainingTime = bar.expirationTime - GetTime() + extendTimer
if remainingTime %s triggerRemaining then
WeakAuras.CopyBarToState(bar, states, cloneId, extendTimer)
Private.ExecEnv.CopyBarToState(bar, states, cloneId, extendTimer)
else
local state = states[cloneId]
if state and state.show then
@@ -3955,16 +3955,16 @@ Private.event_prototypes = {
end
end
if remainingTime >= triggerRemaining then
WeakAuras.ScheduleDbmCheck(bar.expirationTime - triggerRemaining + extendTimer)
Private.ExecEnv.ScheduleDbmCheck(bar.expirationTime - triggerRemaining + extendTimer)
end
else
WeakAuras.CopyBarToState(bar, states, cloneId, extendTimer)
Private.ExecEnv.CopyBarToState(bar, states, cloneId, extendTimer)
end
end
if useClone then
if event == "DBM_TimerStart" then
if WeakAuras.DBMTimerMatches(id, triggerId, triggerText, triggerTextOperator, triggerSpellId, triggerDbmType, triggerCount) then
if Private.ExecEnv.DBMTimerMatches(id, triggerId, triggerText, triggerTextOperator, triggerSpellId, triggerDbmType, triggerCount) then
local bar = WeakAuras.GetDBMTimerById(id)
if bar then
copyOrSchedule(bar, cloneId)
@@ -3978,7 +3978,7 @@ Private.event_prototypes = {
end
elseif event == "DBM_TimerUpdate" then
for id, bar in pairs(WeakAuras.GetAllDBMTimers()) do
if WeakAuras.DBMTimerMatches(id, triggerId, triggerText, triggerTextOperator, triggerSpellId, triggerDbmType, triggerCount) then
if Private.ExecEnv.DBMTimerMatches(id, triggerId, triggerText, triggerTextOperator, triggerSpellId, triggerDbmType, triggerCount) then
copyOrSchedule(bar, id)
else
local state = states[id]
@@ -3994,7 +3994,7 @@ Private.event_prototypes = {
elseif event == "DBM_TimerForce" then
wipe(states)
for id, bar in pairs(WeakAuras.GetAllDBMTimers()) do
if WeakAuras.DBMTimerMatches(id, triggerId, triggerText, triggerTextOperator, triggerSpellId, triggerDbmType, triggerCount) then
if Private.ExecEnv.DBMTimerMatches(id, triggerId, triggerText, triggerTextOperator, triggerSpellId, triggerDbmType, triggerCount) then
copyOrSchedule(bar, cloneId)
end
end
@@ -4002,9 +4002,9 @@ Private.event_prototypes = {
else
if event == "DBM_TimerStart" or event == "DBM_TimerUpdate" then
if extendTimer ~= 0 then
if WeakAuras.DBMTimerMatches(id, triggerId, triggerText, triggerTextOperator, triggerSpellId, triggerDbmType, triggerCount) then
if Private.ExecEnv.DBMTimerMatches(id, triggerId, triggerText, triggerTextOperator, triggerSpellId, triggerDbmType, triggerCount) then
local bar = WeakAuras.GetDBMTimerById(id)
WeakAuras.ScheduleDbmCheck(bar.expirationTime + extendTimer)
Private.ExecEnv.ScheduleDbmCheck(bar.expirationTime + extendTimer)
end
end
end
@@ -4188,7 +4188,7 @@ Private.event_prototypes = {
if triggerUseRemaining then
local remainingTime = bar.expirationTime - GetTime() + extendTimer
if remainingTime %s triggerRemaining then
WeakAuras.CopyBigWigsTimerToState(bar, states, cloneId, extendTimer)
Private.ExecEnv.CopyBigWigsTimerToState(bar, states, cloneId, extendTimer)
else
local state = states[cloneId]
if state and state.show then
@@ -4197,16 +4197,16 @@ Private.event_prototypes = {
end
end
if remainingTime >= triggerRemaining then
WeakAuras.ScheduleBigWigsCheck(bar.expirationTime - triggerRemaining + extendTimer)
Private.ExecEnv.ScheduleBigWigsCheck(bar.expirationTime - triggerRemaining + extendTimer)
end
else
WeakAuras.CopyBigWigsTimerToState(bar, states, cloneId, extendTimer)
Private.ExecEnv.CopyBigWigsTimerToState(bar, states, cloneId, extendTimer)
end
end
if useClone then
if event == "BigWigs_StartBar" then
if WeakAuras.BigWigsTimerMatches(id, triggerText, triggerTextOperator, triggerSpellId, triggerEmphasized, triggerCount, triggerCast) then
if Private.ExecEnv.BigWigsTimerMatches(id, triggerText, triggerTextOperator, triggerSpellId, triggerEmphasized, triggerCount, triggerCast) then
local bar = WeakAuras.GetBigWigsTimerById(id)
if bar then
copyOrSchedule(bar, cloneId)
@@ -4220,14 +4220,14 @@ Private.event_prototypes = {
end
elseif event == "BigWigs_Timer_Update" then
for id, bar in pairs(WeakAuras.GetAllBigWigsTimers()) do
if WeakAuras.BigWigsTimerMatches(id, triggerText, triggerTextOperator, triggerSpellId, triggerEmphasized, triggerCount, triggerCast) then
if Private.ExecEnv.BigWigsTimerMatches(id, triggerText, triggerTextOperator, triggerSpellId, triggerEmphasized, triggerCount, triggerCast) then
copyOrSchedule(bar, id)
end
end
elseif event == "BigWigs_Timer_Force" then
wipe(states)
for id, bar in pairs(WeakAuras.GetAllBigWigsTimers()) do
if WeakAuras.BigWigsTimerMatches(id, triggerText, triggerTextOperator, triggerSpellId, triggerEmphasized, triggerCount, triggerCast) then
if Private.ExecEnv.BigWigsTimerMatches(id, triggerText, triggerTextOperator, triggerSpellId, triggerEmphasized, triggerCount, triggerCast) then
copyOrSchedule(bar, id)
end
end
@@ -4235,9 +4235,9 @@ Private.event_prototypes = {
else
if event == "BigWigs_StartBar" then
if extendTimer ~= 0 then
if WeakAuras.BigWigsTimerMatches(id, triggerText, triggerTextOperator, triggerSpellId, triggerEmphasized, triggerCount, triggerCast) then
if Private.ExecEnv.BigWigsTimerMatches(id, triggerText, triggerTextOperator, triggerSpellId, triggerEmphasized, triggerCount, triggerCast) then
local bar = WeakAuras.GetBigWigsTimerById(id)
WeakAuras.ScheduleBigWigsCheck(bar.expirationTime + extendTimer)
Private.ExecEnv.ScheduleBigWigsCheck(bar.expirationTime + extendTimer)
end
end
end
@@ -4410,7 +4410,7 @@ Private.event_prototypes = {
local remainingCheck = not triggerRemaining or remaining and remaining %s triggerRemaining
if triggerRemaining and remaining and remaining >= triggerRemaining and remaining > 0 then
WeakAuras.ScheduleScan(expirationTime - triggerRemaining, "SWING_TIMER_UPDATE")
Private.ExecEnv.ScheduleScan(expirationTime - triggerRemaining, "SWING_TIMER_UPDATE")
end
]=];
return ret:format(
@@ -4773,7 +4773,7 @@ Private.event_prototypes = {
local _, totemName, startTime, duration, icon = GetTotemInfo(totemType);
active = (startTime and startTime ~= 0);
if not WeakAuras.CheckTotemName(totemName, triggerTotemName, triggerTotemPattern, triggerTotemPatternOperator) then
if not Private.ExecEnv.CheckTotemName(totemName, triggerTotemName, triggerTotemPattern, triggerTotemPatternOperator) then
active = false;
end
@@ -4786,7 +4786,7 @@ Private.event_prototypes = {
local expirationTime = startTime and (startTime + duration) or 0;
local remainingTime = expirationTime - GetTime()
if (remainingTime >= remainingCheck) then
WeakAuras.ScheduleScan(expirationTime - remainingCheck);
Private.ExecEnv.ScheduleScan(expirationTime - remainingCheck);
end
active = checkActive(remainingTime);
end
@@ -4807,7 +4807,7 @@ Private.event_prototypes = {
for i = 1, 4 do
local _, totemName, startTime, duration, icon = GetTotemInfo(i);
if ((startTime and startTime ~= 0) and
WeakAuras.CheckTotemName(totemName, triggerTotemName, triggerTotemPattern, triggerTotemPatternOperator)
Private.ExecEnv.CheckTotemName(totemName, triggerTotemName, triggerTotemPattern, triggerTotemPatternOperator)
) then
found = true;
end
@@ -4827,14 +4827,14 @@ Private.event_prototypes = {
local _, totemName, startTime, duration, icon = GetTotemInfo(i);
active = (startTime and startTime ~= 0);
if not WeakAuras.CheckTotemName(totemName, triggerTotemName, triggerTotemPattern, triggerTotemPatternOperator) then
if not Private.ExecEnv.CheckTotemName(totemName, triggerTotemName, triggerTotemPattern, triggerTotemPatternOperator) then
active = false;
end
if (active and remainingCheck) then
local expirationTime = startTime and (startTime + duration) or 0;
local remainingTime = expirationTime - GetTime()
if (remainingTime >= remainingCheck) then
WeakAuras.ScheduleScan(expirationTime - remainingCheck);
Private.ExecEnv.ScheduleScan(expirationTime - remainingCheck);
end
active = checkActive(remainingTime);
end
@@ -5115,7 +5115,7 @@ Private.event_prototypes = {
local found = expirationTime and nameCheck and stackCheck and remainingCheck
if(triggerRemaining and remaining and remaining >= triggerRemaining and remaining > 0) then
WeakAuras.ScheduleScan(expirationTime - triggerRemaining, "TENCH_UPDATE");
Private.ExecEnv.ScheduleScan(expirationTime - triggerRemaining, "TENCH_UPDATE");
end
if not found then
@@ -5406,7 +5406,7 @@ Private.event_prototypes = {
local remaining = expirationTime - GetTime();
local remainingCheck = %s;
if(remaining >= remainingCheck and remaining > 0) then
WeakAuras.ScheduleScan(expirationTime - remainingCheck);
Private.ExecEnv.ScheduleScan(expirationTime - remainingCheck);
end
]];
ret = ret..ret2:format(tonumber(trigger.remaining) or 0);
@@ -5878,7 +5878,7 @@ Private.event_prototypes = {
remaining = expirationTime - GetTime()
if remainingCheck and remaining >= remainingCheck and remaining > 0 then
WeakAuras.ScheduleCastCheck(expirationTime - remainingCheck, unit)
Private.ExecEnv.ScheduleCastCheck(expirationTime - remainingCheck, unit)
end
]=];
ret = ret:format(trigger.unit == "group" and "true" or "false",
@@ -6038,10 +6038,10 @@ Private.event_prototypes = {
store = true,
init = "tostring(tonumber(string.sub(UnitGUID(unit) or '', 8, 12), 16) or '')",
conditionType = "string",
preamble = "local npcIdChecker = WeakAuras.ParseStringCheck(%q)",
preamble = "local npcIdChecker = Private.ExecEnv.ParseStringCheck(%q)",
test = "npcIdChecker:Check(npcId)",
conditionPreamble = function(input)
return WeakAuras.ParseStringCheck(input)
return Private.ExecEnv.ParseStringCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.npcId)
@@ -6140,11 +6140,11 @@ Private.event_prototypes = {
display = L["Source Unit Name/Realm"],
type = "string",
multiline = true,
preamble = "local sourceNameRealmChecker = WeakAuras.ParseNameCheck(%q)",
preamble = "local sourceNameRealmChecker = Private.ExecEnv.ParseNameCheck(%q)",
test = "sourceNameRealmChecker:Check(sourceName, sourceRealm)",
conditionType = "string",
conditionPreamble = function(input)
return WeakAuras.ParseNameCheck(input)
return Private.ExecEnv.ParseNameCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.sourceName, state.sourceRealm)
@@ -6189,11 +6189,11 @@ Private.event_prototypes = {
display = L["Name/Realm of Caster's Target"],
type = "string",
multiline = true,
preamble = "local destNameRealmChecker = WeakAuras.ParseNameCheck(%q)",
preamble = "local destNameRealmChecker = Private.ExecEnv.ParseNameCheck(%q)",
test = "destNameRealmChecker:Check(destName, destRealm)",
conditionType = "string",
conditionPreamble = function(input)
return WeakAuras.ParseNameCheck(input)
return Private.ExecEnv.ParseNameCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.destName, state.destRealm)
@@ -6829,7 +6829,7 @@ Private.event_prototypes = {
display = L["Group Type"],
type = "multiselect",
values = "group_types",
init = "WeakAuras.GroupType()",
init = "Private.ExecEnv.GroupType()",
events = {"PARTY_MEMBERS_CHANGED", "RAID_ROSTER_UPDATE"}
},
{
@@ -7131,11 +7131,11 @@ Private.event_prototypes = {
end,
type = "string",
multiline = true,
preamble = "local zoneChecker = WeakAuras.ParseZoneCheck(%q)",
preamble = "local zoneChecker = Private.ExecEnv.ParseZoneCheck(%q)",
test = "zoneChecker:Check(MapId)",
conditionType = "string",
conditionPreamble = function(input)
return WeakAuras.ParseZoneCheck(input)
return Private.ExecEnv.ParseZoneCheck(input)
end,
conditionTest = function(state, needle, op, preamble)
return preamble:Check(state.zoneId)
+3 -3
View File
@@ -928,8 +928,8 @@ local function modify(parent, region, data)
self.updatedChildren[regionData] = true
end
end
if childData and WeakAuras.clones[childID] then
for cloneID, cloneRegion in pairs(WeakAuras.clones[childID]) do
if childData and Private.clones[childID] then
for cloneID, cloneRegion in pairs(Private.clones[childID]) do
local regionData = createRegionData(childData, cloneRegion, childID, cloneID, dataIndex)
if cloneRegion.toShow then
tinsert(self.sortedChildren, regionData)
@@ -1266,7 +1266,7 @@ local function modify(parent, region, data)
self:Hide()
end
if WeakAuras.IsOptionsOpen() then
WeakAuras.OptionsFrame().moversizer:ReAnchor()
Private.OptionsFrame().moversizer:ReAnchor()
end
Private.StopProfileSystem("dynamicgroup")
Private.StopProfileAura(data.id)
+1 -1
View File
@@ -138,7 +138,7 @@ local function modify(parent, region, data)
-- Scan children for visibility
if not childVisible then
for child in Private.TraverseLeafs(data) do
local childRegion = WeakAuras.regions[child.id] and WeakAuras.regions[child.id].region;
local childRegion = Private.regions[child.id] and Private.regions[child.id].region;
if childRegion and childRegion.toShow then
childVisible = true;
break;
+1 -1
View File
@@ -280,7 +280,7 @@ end
do
function Private.PreShowModels(self, event)
Private.StartProfileSystem("model");
for id, data in pairs(WeakAuras.regions) do
for id, data in pairs(Private.regions) do
Private.StartProfileAura(id);
if data.region.toShow then
if (data.regionType == "model") then
+6 -6
View File
@@ -118,13 +118,13 @@ local screenWidth, screenHeight = math.ceil(GetScreenWidth() / 20) * 20, math.ce
function Private.GetAnchorsForData(parentData, type)
local result
if not parentData.controlledChildren then
if not WeakAuras.regionOptions[parentData.regionType] then
if not Private.regionOptions[parentData.regionType] then
return
end
local anchors
if WeakAuras.regionOptions[parentData.regionType].getAnchors then
anchors = WeakAuras.regionOptions[parentData.regionType].getAnchors(parentData)
if Private.regionOptions[parentData.regionType].getAnchors then
anchors = Private.regionOptions[parentData.regionType].getAnchors(parentData)
else
anchors = Private.default_types_for_anchor
end
@@ -452,7 +452,7 @@ end
WeakAuras.regionPrototype.AnchorSubRegion = AnchorSubRegion
function WeakAuras.regionPrototype.create(region)
local defaultsForRegion = WeakAuras.regionTypes[region.regionType] and WeakAuras.regionTypes[region.regionType].default;
local defaultsForRegion = Private.regionTypes[region.regionType] and Private.regionTypes[region.regionType].default;
region.SoundPlay = SoundPlay;
region.SoundRepeatStop = SoundRepeatStop;
region.SendChat = SendChat;
@@ -501,7 +501,7 @@ function WeakAuras.regionPrototype.modify(parent, region, data)
region.states = nil
region.subRegionEvents:ClearSubscribers()
local defaultsForRegion = WeakAuras.regionTypes[data.regionType] and WeakAuras.regionTypes[data.regionType].default;
local defaultsForRegion = Private.regionTypes[data.regionType] and Private.regionTypes[data.regionType].default;
if region.SetRegionAlpha then
region:SetRegionAlpha(data.alpha)
@@ -626,7 +626,7 @@ local regionsForFrameTick = {}
local frameForFrameTick = CreateFrame("Frame");
WeakAuras.frames["Frame Tick Frame"] = frameForFrameTick
Private.frames["Frame Tick Frame"] = frameForFrameTick
local function FrameTick()
if WeakAuras.IsOptionsOpen() then
+4 -4
View File
@@ -142,8 +142,8 @@ local function modify(parent, region, data)
region:SetHeight(height)
if data.parent then
Private.EnsureRegion(data.parent)
if WeakAuras.regions[data.parent].region.PositionChildren then
WeakAuras.regions[data.parent].region:PositionChildren()
if Private.regions[data.parent].region.PositionChildren then
Private.regions[data.parent].region:PositionChildren()
end
end
end
@@ -165,8 +165,8 @@ local function modify(parent, region, data)
region.height = height;
region:SetWidth(region.width);
region:SetHeight(region.height);
if(data.parent and WeakAuras.regions[data.parent].region.PositionChildren) then
WeakAuras.regions[data.parent].region:PositionChildren();
if(data.parent and Private.regions[data.parent].region.PositionChildren) then
Private.regions[data.parent].region:PositionChildren();
end
end
end
+1 -1
View File
@@ -346,7 +346,7 @@ local function modify(parent, region, parentData, data, first)
end
-- This is used by the templates to add glow
function WeakAuras.getDefaultGlow(regionType)
function Private.getDefaultGlow(regionType)
if regionType == "aurabar" then
return {
["type"] = "subglow",
+1 -1
View File
@@ -2482,7 +2482,7 @@ Private.non_transmissable_fields_v2000 = {
}
}
WeakAuras.data_stub = {
Private.data_stub = {
-- note: this is the minimal data stub which prevents false positives in diff upon reimporting an aura.
-- pending a refactor of other code which adds unnecessary fields, it is possible to shrink it
triggers = {
+106 -107
View File
@@ -112,7 +112,7 @@ function Private.LoadOptions(msg)
-- inform the user and queue ooc
prettyPrint(L["Options will finish loading after combat ends."])
queueshowooc = msg or "";
WeakAuras.frames["Addon Initialization Handler"]:RegisterEvent("PLAYER_REGEN_ENABLED")
Private.frames["Addon Initialization Handler"]:RegisterEvent("PLAYER_REGEN_ENABLED")
return false;
else
local loaded, reason = LoadAddOn("WeakAurasOptions");
@@ -216,29 +216,30 @@ local loadFuncsForOptions = {};
local loadEvents = {}
-- All regions keyed on id, has properties: region, regionType, also see clones
WeakAuras.regions = {};
Private.regions = {};
local regions = Private.regions;
-- keyed on id, contains bool indicating whether the aura is loaded
Private.loaded = {};
local loaded = Private.loaded;
-- contains regions for clones
WeakAuras.clones = {};
local clones = WeakAuras.clones;
Private.clones = {};
local clones = Private.clones;
-- Unused regions that are kept around for clones
local clonePool = {}
-- One table per regionType, see RegisterRegionType, notable properties: create, modify and default
WeakAuras.regionTypes = {};
local regionTypes = WeakAuras.regionTypes;
Private.regionTypes = {};
local regionTypes = Private.regionTypes;
Private.subRegionTypes = {}
local subRegionTypes = Private.subRegionTypes
-- One table per regionType, see RegisterRegionOptions
WeakAuras.regionOptions = {};
local regionOptions = WeakAuras.regionOptions;
Private.regionOptions = {};
local regionOptions = Private.regionOptions;
Private.subRegionOptions = {}
local subRegionOptions = Private.subRegionOptions
@@ -282,7 +283,6 @@ local fallbacksStates = {};
local triggerSystems = {}
local timers = {}; -- Timers for autohiding, keyed on id, triggernum, cloneid
WeakAuras.timers = timers;
WeakAuras.raidUnits = {};
WeakAuras.raidpetUnits = {};
@@ -319,13 +319,13 @@ local playerLevel = UnitLevel("player");
Private.customActionsFunctions = {};
-- Custom Functions used in conditions, keyed on id, condition number, "changes", property number
WeakAuras.customConditionsFunctions = {};
Private.ExecEnv.customConditionsFunctions = {};
-- Text format functions for chat messages, keyed on id, condition number, changes, property number
WeakAuras.conditionTextFormatters = {}
Private.ExecEnv.conditionTextFormatters = {}
-- Helpers for conditions, that is custom run functions and preamble objects for built in checks
-- keyed on UID not on id!
WeakAuras.conditionHelpers = {}
Private.ExecEnv.conditionHelpers = {}
local load_prototype = Private.load_prototype;
@@ -336,7 +336,7 @@ local levelColors = {
[3] = "|cFFFF4040"
};
function WeakAuras.validate(input, default)
function Private.validate(input, default)
for field, defaultValue in pairs(default) do
if(type(defaultValue) == "table" and type(input[field]) ~= "table") then
input[field] = {};
@@ -344,7 +344,7 @@ function WeakAuras.validate(input, default)
input[field] = defaultValue;
end
if(type(input[field]) == "table") then
WeakAuras.validate(input[field], defaultValue);
Private.validate(input[field], defaultValue);
end
end
end
@@ -948,7 +948,7 @@ local function tooltip_draw()
end
local colorFrame = CreateFrame("Frame");
WeakAuras.frames["LDB Icon Recoloring"] = colorFrame;
Private.frames["LDB Icon Recoloring"] = colorFrame;
local colorElapsed = 0;
local colorDelay = 2;
@@ -956,7 +956,7 @@ local r, g, b = 0.8, 0, 1;
local r2, g2, b2 = random(2)-1, random(2)-1, random(2)-1;
local tooltip_update_frame = CreateFrame("Frame");
WeakAuras.frames["LDB Tooltip Updater"] = tooltip_update_frame;
Private.frames["LDB Tooltip Updater"] = tooltip_update_frame;
-- function copied from LibDBIcon-1.0.lua
local function getAnchors(frame)
@@ -1087,7 +1087,7 @@ function Private.Login(initialTime, takeNewSnapshots)
end
coroutine.yield();
WeakAuras.AddMany(toAdd, takeNewSnapshots);
Private.AddMany(toAdd, takeNewSnapshots);
coroutine.yield();
Private.RegisterLoadEvents();
@@ -1108,7 +1108,7 @@ function Private.Login(initialTime, takeNewSnapshots)
loginFinished = true
-- Tell Dynamic Groups that we are done with login
for _, region in pairs(WeakAuras.regions) do
for _, region in pairs(Private.regions) do
if (region.region.RunDelayedActions) then
region.region:RunDelayedActions();
end
@@ -1138,12 +1138,12 @@ function Private.Login(initialTime, takeNewSnapshots)
end
local WeakAurasFrame = CreateFrame("Frame", "WeakAurasFrame", UIParent);
WeakAuras.frames["WeakAuras Main Frame"] = WeakAurasFrame;
Private.frames["WeakAuras Main Frame"] = WeakAurasFrame;
WeakAurasFrame:SetAllPoints(UIParent);
WeakAurasFrame:SetFrameStrata("BACKGROUND");
local loadedFrame = CreateFrame("Frame");
WeakAuras.frames["Addon Initialization Handler"] = loadedFrame;
Private.frames["Addon Initialization Handler"] = loadedFrame;
loadedFrame:RegisterEvent("ADDON_LOADED");
loadedFrame:RegisterEvent("PLAYER_LOGIN");
loadedFrame:RegisterEvent("PLAYER_LOGOUT");
@@ -1223,7 +1223,7 @@ loadedFrame:SetScript("OnEvent", function(self, event, addon)
if (queueshowooc) then
WeakAuras.OpenOptions(queueshowooc)
queueshowooc = nil
WeakAuras.frames["Addon Initialization Handler"]:UnregisterEvent("PLAYER_REGEN_ENABLED")
Private.frames["Addon Initialization Handler"]:UnregisterEvent("PLAYER_REGEN_ENABLED")
end
end
end
@@ -1275,7 +1275,7 @@ end
function Private.PauseAllDynamicGroups()
local suspended = {}
for id, region in pairs(WeakAuras.regions) do
for id, region in pairs(Private.regions) do
if (region.region.Suspend) then
region.region:Suspend();
tinsert(suspended, id)
@@ -1302,7 +1302,7 @@ function Private.IsOptionsProcessingPaused()
return pausedOptionsProcessing;
end
function WeakAuras.GroupType()
function Private.ExecEnv.GroupType()
if (IsInRaid()) then
return "raid";
end
@@ -1398,7 +1398,7 @@ local function scanForLoadsImpl(toCheck, event, arg1, ...)
end
local size, difficulty, instanceType = GetInstanceTypeAndSize()
local group = WeakAuras.GroupType()
local group = Private.ExecEnv.GroupType()
local changed = 0;
local shouldBeLoaded, couldBeLoaded;
@@ -1487,8 +1487,7 @@ function Private.ScanForLoads(toCheck, event, arg1, ...)
end
local loadFrame = CreateFrame("Frame");
WeakAuras.loadFrame = loadFrame;
WeakAuras.frames["Display Load Handling"] = loadFrame;
Private.frames["Display Load Handling"] = loadFrame;
loadFrame:RegisterEvent("PLAYER_TALENT_UPDATE");
loadFrame:RegisterEvent("SPELL_UPDATE_USABLE");
@@ -1514,8 +1513,7 @@ loadFrame:RegisterEvent("PLAYER_FLAGS_CHANGED")
loadFrame:RegisterEvent("PARTY_LEADER_CHANGED")
local unitLoadFrame = CreateFrame("Frame");
WeakAuras.unitLoadFrame = unitLoadFrame;
WeakAuras.frames["Display Load Handling 2"] = unitLoadFrame;
Private.frames["Display Load Handling 2"] = unitLoadFrame;
unitLoadFrame:RegisterEvent("UNIT_FLAGS");
unitLoadFrame:RegisterEvent("UNIT_ENTERED_VEHICLE");
@@ -1541,8 +1539,8 @@ end
local function UnloadAll()
-- Even though auras are collapsed, their finish animation can be running
for id in pairs(loaded) do
if WeakAuras.regions[id] and WeakAuras.regions[id].region then
Private.CancelAnimation(WeakAuras.regions[id].region, true, true, true, true, true, true)
if Private.regions[id] and Private.regions[id].region then
Private.CancelAnimation(Private.regions[id].region, true, true, true, true, true, true)
end
if clones[id] then
for _, region in pairs(clones[id]) do
@@ -1583,7 +1581,7 @@ function Private.Resume()
local suspended = Private.PauseAllDynamicGroups()
for id, region in pairs(WeakAuras.regions) do
for id, region in pairs(Private.regions) do
region.region:Collapse();
end
@@ -1651,11 +1649,11 @@ function Private.UnloadDisplays(toUnload, ...)
local uid = WeakAuras.GetData(id).uid
Private.UnloadConditions(uid)
WeakAuras.regions[id].region:Collapse();
Private.regions[id].region:Collapse();
Private.CollapseAllClones(id);
-- Even though auras are collapsed, their finish animation can be running
Private.CancelAnimation(WeakAuras.regions[id].region, true, true, true, true, true, true)
Private.CancelAnimation(Private.regions[id].region, true, true, true, true, true, true)
if clones[id] then
for cloneId, region in pairs(clones[id]) do
Private.CancelAnimation(region, true, true, true, true, true, true)
@@ -1720,11 +1718,11 @@ function WeakAuras.Delete(data)
end
end
if WeakAuras.regions[id] then
WeakAuras.regions[id].region:Collapse()
Private.CancelAnimation(WeakAuras.regions[id].region, true, true, true, true, true, true)
WeakAuras.regions[id].region = nil
WeakAuras.regions[id] = nil
if Private.regions[id] then
Private.regions[id].region:Collapse()
Private.CancelAnimation(Private.regions[id].region, true, true, true, true, true, true)
Private.regions[id].region = nil
Private.regions[id] = nil
end
if clones[id] then
@@ -1762,10 +1760,10 @@ function WeakAuras.Delete(data)
end
Private.customActionsFunctions[id] = nil;
WeakAuras.customConditionsFunctions[id] = nil;
WeakAuras.conditionTextFormatters[id] = nil
Private.ExecEnv.customConditionsFunctions[id] = nil;
Private.ExecEnv.conditionTextFormatters[id] = nil
Private.frameLevels[id] = nil;
WeakAuras.conditionHelpers[data.uid] = nil
Private.ExecEnv.conditionHelpers[data.uid] = nil
Private.RemoveHistory(data.uid)
@@ -1795,10 +1793,10 @@ function WeakAuras.Rename(data, newid)
end
UIDtoID[data.uid] = newid
WeakAuras.regions[newid] = WeakAuras.regions[oldid];
WeakAuras.regions[oldid] = nil;
if WeakAuras.regions[newid] then
WeakAuras.regions[newid].region.id = newid
Private.regions[newid] = Private.regions[oldid];
Private.regions[oldid] = nil;
if Private.regions[newid] then
Private.regions[newid].region.id = newid
end
if(clones[oldid]) then
clones[newid] = clones[oldid]
@@ -1858,11 +1856,11 @@ function WeakAuras.Rename(data, newid)
Private.customActionsFunctions[newid] = Private.customActionsFunctions[oldid];
Private.customActionsFunctions[oldid] = nil;
WeakAuras.customConditionsFunctions[newid] = WeakAuras.customConditionsFunctions[oldid];
WeakAuras.customConditionsFunctions[oldid] = nil;
Private.ExecEnv.customConditionsFunctions[newid] = Private.ExecEnv.customConditionsFunctions[oldid];
Private.ExecEnv.customConditionsFunctions[oldid] = nil;
WeakAuras.conditionTextFormatters[newid] = WeakAuras.conditionTextFormatters[oldid]
WeakAuras.conditionTextFormatters[oldid] = nil
Private.ExecEnv.conditionTextFormatters[newid] = Private.ExecEnv.conditionTextFormatters[oldid]
Private.ExecEnv.conditionTextFormatters[oldid] = nil
Private.frameLevels[newid] = Private.frameLevels[oldid];
Private.frameLevels[oldid] = nil;
@@ -1880,9 +1878,9 @@ function Private.Convert(data, newType)
Private.FakeStatesFor(id, false)
if WeakAuras.regions[id] then
WeakAuras.regions[id].region = nil
WeakAuras.regions[id] = nil
if Private.regions[id] then
Private.regions[id].region = nil
Private.regions[id] = nil
end
data.regionType = newType;
@@ -2150,7 +2148,7 @@ local function loadOrder(tbl, idtable)
end
coroutine.yield()
end
error("Circular dependency in WeakAuras.AddMany between "..table.concat(depends, ", "));
error("Circular dependency in Private.AddMany between "..table.concat(depends, ", "));
else
if not(loaded[data.parent]) then
local dependsOut = CopyTable(depends)
@@ -2178,7 +2176,7 @@ local function loadOrder(tbl, idtable)
return order
end
function WeakAuras.AddMany(tbl, takeSnapshots)
function Private.AddMany(tbl, takeSnapshots)
local idtable = {};
for _, data in ipairs(tbl) do
-- There was an unfortunate bug in update.lua in 2022 that resulted
@@ -2203,8 +2201,8 @@ function WeakAuras.AddMany(tbl, takeSnapshots)
end
for data in pairs(groups) do
if data.type == "dynamicgroup" then
if WeakAuras.regions[data.id] then
WeakAuras.regions[data.id].region:ReloadControlledChildren()
if Private.regions[data.id] then
Private.regions[data.id].region:ReloadControlledChildren()
end
else
WeakAuras.Add(data)
@@ -2554,23 +2552,23 @@ end
function WeakAuras.PreAdd(data)
-- Readd what Compress removed before version 8
if (not data.internalVersion or data.internalVersion < 7) then
WeakAuras.validate(data, oldDataStub)
Private.validate(data, oldDataStub)
elseif (data.internalVersion < 8) then
WeakAuras.validate(data, oldDataStub2)
Private.validate(data, oldDataStub2)
end
local default = data.regionType and WeakAuras.regionTypes[data.regionType] and WeakAuras.regionTypes[data.regionType].default
local default = data.regionType and Private.regionTypes[data.regionType] and Private.regionTypes[data.regionType].default
if default then
WeakAuras.validate(data, default)
Private.validate(data, default)
end
local regionValidate = data.regionType and WeakAuras.regionTypes[data.regionType] and WeakAuras.regionTypes[data.regionType].validate
local regionValidate = data.regionType and Private.regionTypes[data.regionType] and Private.regionTypes[data.regionType].validate
if regionValidate then
regionValidate(data)
end
Private.Modernize(data);
WeakAuras.validate(data, WeakAuras.data_stub);
Private.validate(data, Private.data_stub);
if data.subRegions then
for _, subRegionData in ipairs(data.subRegions) do
local subType = subRegionData.type
@@ -2581,7 +2579,7 @@ function WeakAuras.PreAdd(data)
default = default(data.regionType)
end
if default then
WeakAuras.validate(subRegionData, default)
Private.validate(subRegionData, default)
end
else
WeakAuras.prettyPrint(L["ERROR in '%s' unknown or incompatible sub element type '%s'"]:format(data.id, subType))
@@ -2626,11 +2624,11 @@ local function pAdd(data, simpleChange)
if simpleChange then
db.displays[id] = data
if WeakAuras.GetRegion(data.id) then
WeakAuras.SetRegion(data)
Private.SetRegion(data)
end
if clones[id] then
for cloneId, region in pairs(clones[id]) do
WeakAuras.SetRegion(data, cloneId)
Private.SetRegion(data, cloneId)
end
end
Private.UpdatedTriggerState(id)
@@ -2644,7 +2642,7 @@ local function pAdd(data, simpleChange)
end
db.displays[id] = data;
if WeakAuras.GetRegion(data.id) then
WeakAuras.SetRegion(data)
Private.SetRegion(data)
end
Private.ScanForLoadsGroup({[id] = true});
loadEvents["GROUP"] = loadEvents["GROUP"] or {}
@@ -2654,8 +2652,8 @@ local function pAdd(data, simpleChange)
if (WeakAuras.IsOptionsOpen()) then
visible = Private.FakeStatesFor(id, false)
else
if (WeakAuras.regions[id] and WeakAuras.regions[id].region) then
WeakAuras.regions[id].region:Collapse()
if (Private.regions[id] and Private.regions[id].region) then
Private.regions[id].region:Collapse()
else
Private.CollapseAllClones(id)
end
@@ -2688,8 +2686,8 @@ local function pAdd(data, simpleChange)
loadEvents["SCAN_ALL"][id] = true
local loadForOptionsFuncStr = ConstructFunction(load_prototype, data.load, true);
local loadFunc = WeakAuras.LoadFunction(loadFuncStr);
local loadForOptionsFunc = WeakAuras.LoadFunction(loadForOptionsFuncStr);
local loadFunc = Private.LoadFunction(loadFuncStr);
local loadForOptionsFunc = Private.LoadFunction(loadForOptionsFuncStr);
local triggerLogicFunc;
if data.triggers.disjunctive == "custom" then
triggerLogicFunc = WeakAuras.LoadFunction("return "..(data.triggers.customTriggerLogic or ""));
@@ -2715,7 +2713,7 @@ local function pAdd(data, simpleChange)
end
if WeakAuras.GetRegion(data.id) then
WeakAuras.SetRegion(data)
Private.SetRegion(data)
end
triggerState[id] = {
@@ -2766,10 +2764,10 @@ function Private.AddParents(data)
end
end
function WeakAuras.SetRegion(data, cloneId)
function Private.SetRegion(data, cloneId)
local regionType = data.regionType;
if not(regionType) then
error("Improper arguments to WeakAuras.SetRegion - regionType not defined");
error("Improper arguments to Private.SetRegion - regionType not defined");
else
if(not regionTypes[regionType]) then
regionType = "fallback";
@@ -2778,7 +2776,7 @@ function WeakAuras.SetRegion(data, cloneId)
local id = data.id;
if not(id) then
error("Improper arguments to WeakAuras.SetRegion - id not defined");
error("Improper arguments to Private.SetRegion - id not defined");
else
local region;
if(cloneId) then
@@ -2800,9 +2798,9 @@ function WeakAuras.SetRegion(data, cloneId)
region = clones[id][cloneId];
end
else
if((not WeakAuras.regions[id]) or (not WeakAuras.regions[id].region) or WeakAuras.regions[id].regionType ~= regionType) then
if((not regions[id]) or (not regions[id].region) or regions[id].regionType ~= regionType) then
region = regionTypes[regionType].create(WeakAurasFrame, data);
WeakAuras.regions[id] = {
regions[id] = {
regionType = regionType,
region = region
};
@@ -2813,12 +2811,12 @@ function WeakAuras.SetRegion(data, cloneId)
region.toShow = true
end
else
region = WeakAuras.regions[id].region
region = regions[id].region
end
end
region.id = id;
region.cloneId = cloneId or "";
WeakAuras.validate(data, regionTypes[regionType].default);
Private.validate(data, regionTypes[regionType].default);
local parent = WeakAurasFrame;
if(data.parent) then
@@ -2864,7 +2862,7 @@ local function EnsureClone(id, cloneId)
clones[id] = clones[id] or {}
if not(clones[id][cloneId]) then
local data = WeakAuras.GetData(id)
WeakAuras.SetRegion(data, cloneId)
Private.SetRegion(data, cloneId)
end
return clones[id][cloneId]
end
@@ -2875,8 +2873,8 @@ function Private.CreatingRegions()
end
--- Ensures that a region exists
local function EnsureRegion(id)
if not WeakAuras.regions[id] or not WeakAuras.regions[id].region then
WeakAuras.regions[id] = WeakAuras.regions[id] or {}
if not Private.regions[id] or not Private.regions[id].region then
Private.regions[id] = Private.regions[id] or {}
-- The region doesn't yet exist
-- But we must also ensure that our parents exists
-- and as an additional wrinkle, for dynamic groups, all children must exist!
@@ -2902,20 +2900,20 @@ local function EnsureRegion(id)
end
for _, toCreateId in ipairs_reverse(aurasToCreate) do
local data = WeakAuras.GetData(toCreateId)
WeakAuras.SetRegion(data)
Private.SetRegion(data)
if (data.regionType == "dynamicgroup") then
for child in Private.TraverseAllChildren(data) do
WeakAuras.SetRegion(child)
Private.SetRegion(child)
end
end
end
creatingRegions = false
for _, dynamicGroupId in ipairs_reverse(dynamicGroups) do
local dgRegion = WeakAuras.regions[dynamicGroupId].region
local dgRegion = Private.regions[dynamicGroupId].region
dgRegion:ReloadControlledChildren()
end
end
return WeakAuras.regions[id] and WeakAuras.regions[id].region
return Private.regions[id] and Private.regions[id].region
end
--- Ensures that a region/clone exists and returns it
-- Even if we are asked to only create a clone, we create the default region too.
@@ -2932,7 +2930,7 @@ function WeakAuras.GetRegion(id, cloneId)
if(cloneId and cloneId ~= "") then
return clones[id] and clones[id][cloneId]
end
return WeakAuras.regions[id] and WeakAuras.regions[id].region
return Private.regions[id] and Private.regions[id].region
end
-- Note, does not create a clone!
@@ -2941,7 +2939,7 @@ function Private.GetRegionByUID(uid, cloneId)
if(cloneId and cloneId ~= "") then
return id and clones[id] and clones[id][cloneId];
end
return id and WeakAuras.regions[id] and WeakAuras.regions[id].region
return id and Private.regions[id] and Private.regions[id].region
end
function Private.CollapseAllClones(id, triggernum)
@@ -3168,8 +3166,8 @@ function Private.HandleGlowAction(actions, region)
if WeakAuras.GetData(frame_name) then
Private.EnsureRegion(frame_name)
end
if WeakAuras.regions[frame_name] then
glow_frame = WeakAuras.regions[frame_name].region
if Private.regions[frame_name] then
glow_frame = Private.regions[frame_name].region
should_glow_frame = true
end
else
@@ -3355,6 +3353,7 @@ Private.CanHaveDuration = wrapTriggerSystemFunction("CanHaveDuration", "firstVal
Private.CanHaveClones = wrapTriggerSystemFunction("CanHaveClones", "or");
Private.CanHaveTooltip = wrapTriggerSystemFunction("CanHaveTooltip", "or");
-- This has to be in WeakAuras for now, because GetNameAndIcon can be called from the options
-- before the Options has access to Private
WeakAuras.GetNameAndIcon = wrapTriggerSystemFunction("GetNameAndIcon", "nameAndIcon");
Private.GetTriggerDescription = wrapTriggerSystemFunction("GetTriggerDescription", "call");
@@ -3543,7 +3542,7 @@ end
local FrameTimes = {};
function WeakAuras.ProfileFrames(all)
UpdateAddOnCPUUsage();
for name, frame in pairs(WeakAuras.frames) do
for name, frame in pairs(Private.frames) do
local FrameTime = GetFrameCPUUsage(frame);
FrameTimes[name] = FrameTimes[name] or 0;
if(all or FrameTime > FrameTimes[name]) then
@@ -3556,7 +3555,7 @@ end
local DisplayTimes = {};
function WeakAuras.ProfileDisplays(all)
UpdateAddOnCPUUsage();
for id, regionData in pairs(WeakAuras.regions) do
for id, regionData in pairs(Private.regions) do
local DisplayTime = GetFrameCPUUsage(regionData.region, true);
DisplayTimes[id] = DisplayTimes[id] or 0;
if(all or DisplayTime > DisplayTimes[id]) then
@@ -3603,8 +3602,8 @@ local function SetFrameLevel(id, frameLevel)
if (Private.frameLevels[id] == frameLevel) then
return;
end
if (WeakAuras.regions[id] and WeakAuras.regions[id].region) then
Private.ApplyFrameLevel(WeakAuras.regions[id].region, frameLevel)
if (Private.regions[id] and Private.regions[id].region) then
Private.ApplyFrameLevel(Private.regions[id].region, frameLevel)
end
if (clones[id]) then
for i,v in pairs(clones[id]) do
@@ -4093,8 +4092,8 @@ function Private.UpdatedTriggerState(id)
for _, clone in pairs(clones[id]) do
clone:Collapse()
end
if WeakAuras.regions[id] then
WeakAuras.regions[id].region:Collapse()
if Private.regions[id] then
Private.regions[id].region:Collapse()
end
elseif (show and oldShow) then -- Already shown, update regions
-- Hide old clones
@@ -4104,8 +4103,8 @@ function Private.UpdatedTriggerState(id)
end
end
if (not activeTriggerState[""] or not activeTriggerState[""].show) then
if WeakAuras.regions[id] then
WeakAuras.regions[id].region:Collapse()
if Private.regions[id] then
Private.regions[id].region:Collapse()
end
end
-- Show new states
@@ -4541,7 +4540,7 @@ end
local function xPositionNextToOptions()
local xOffset;
local optionsFrame = WeakAuras.OptionsFrame();
local optionsFrame = Private.OptionsFrame();
local centerX = (optionsFrame:GetLeft() + optionsFrame:GetRight()) / 2;
if (centerX > GetScreenWidth() / 2) then
if (optionsFrame:GetLeft() > 400) then
@@ -4615,7 +4614,7 @@ local function ensureMouseFrame()
mouseFrame:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", db.mousePointerFrame.xOffset, db.mousePointerFrame.yOffset);
else
-- Fnd a suitable position
local optionsFrame = WeakAuras.OptionsFrame();
local optionsFrame = Private.OptionsFrame();
local yOffset = (optionsFrame:GetTop() + optionsFrame:GetBottom()) / 2;
local xOffset = xPositionNextToOptions();
-- We use the top right, because the main frame uses the top right as the reference too
@@ -4784,7 +4783,7 @@ function Private.ensurePRDFrame()
end
if (not xOffset or not yOffset) then
local optionsFrame = WeakAuras.OptionsFrame();
local optionsFrame = Private.OptionsFrame();
yOffset = optionsFrame:GetBottom() + prdHeight - GetScreenHeight();
xOffset = xPositionNextToOptions() + prdWidth / 2 - GetScreenWidth();
end
@@ -4871,7 +4870,7 @@ local function tryAnchorAgain()
if (data and region) then
local parent = WeakAurasFrame;
if (data.parent and WeakAuras.GetData(data.parent) and Private.EnsureRegion(data.parent)) then
parent = WeakAuras.regions[data.parent].region;
parent = Private.regions[data.parent].region;
end
Private.AnchorFrame(data, region, parent);
end
@@ -4948,8 +4947,8 @@ local function GetAnchorFrame(data, region, parent)
if (frame_name == id) then
return parent;
end
if(WeakAuras.regions[frame_name]) then
return WeakAuras.regions[frame_name].region;
if(Private.regions[frame_name]) then
return Private.regions[frame_name].region;
end
postponeAnchor(id);
else
@@ -5030,7 +5029,7 @@ function Private.AnchorFrame(data, region, parent, force)
end
end
function WeakAuras.FindUnusedId(prefix)
function Private.FindUnusedId(prefix)
prefix = prefix or "New"
local num = 2;
local id = prefix
@@ -5183,7 +5182,7 @@ do
end
end
function WeakAuras.ParseNameCheck(name)
function Private.ExecEnv.ParseNameCheck(name)
local matches = {
name = {},
realm = {},
@@ -5264,7 +5263,7 @@ function WeakAuras.ParseNameCheck(name)
return matches
end
function WeakAuras.ParseZoneCheck(input)
function Private.ExecEnv.ParseZoneCheck(input)
if not input then return end
local matcher = {
@@ -5284,7 +5283,7 @@ function WeakAuras.ParseZoneCheck(input)
return matcher
end
function WeakAuras.ParseStringCheck(input)
function Private.ExecEnv.ParseStringCheck(input)
if not input then return end
local matcher = {
zones = {},
@@ -283,7 +283,7 @@ local Actions = {
["Group"] = function(source, groupId, target, before)
if source and not source.data.parent then
if groupId then
local group = WeakAuras.GetDisplayButton(groupId)
local group = OptionsPrivate.GetDisplayButton(groupId)
if group and group:IsGroup() then
local children = group.data.controlledChildren
if target then
@@ -337,7 +337,7 @@ local Actions = {
OptionsPrivate.Private.AddParents(parent)
WeakAuras.UpdateGroupOrders(parent);
WeakAuras.ClearAndUpdateOptions(parent.id);
local group = WeakAuras.GetDisplayButton(parent.id)
local group = OptionsPrivate.GetDisplayButton(parent.id)
group.callbacks.UpdateExpandButton();
group:UpdateParentWarning()
group:ReloadTooltip()
@@ -376,7 +376,7 @@ end
-------------------------
local function GetDropTarget()
local buttonList = WeakAuras.displayButtons
local buttonList = OptionsPrivate.displayButtons
for id, button in pairs(buttonList) do
if not button.dragging and button:IsEnabled() and button:IsShown() then
@@ -405,7 +405,7 @@ end
local function Show_DropIndicator(id)
local indicator = OptionsPrivate.DropIndicator()
local source = WeakAuras.GetDisplayButton(id)
local source = OptionsPrivate.GetDisplayButton(id)
local target, pos
if source then
target, pos = select(2, GetDropTarget())
@@ -519,7 +519,7 @@ local methods = {
for index, selectedId in ipairs(self.grouping) do
local selectedData = WeakAuras.GetData(selectedId);
tinsert(self.data.controlledChildren, selectedId);
local selectedButton = WeakAuras.GetDisplayButton(selectedId);
local selectedButton = OptionsPrivate.GetDisplayButton(selectedId);
while selectedData.parent do
selectedButton:Ungroup();
end
@@ -535,7 +535,7 @@ local methods = {
if (selectedData.controlledChildren) then
for child in OptionsPrivate.Private.TraverseAllChildren(selectedData) do
local childButton = WeakAuras.GetDisplayButton(child.id)
local childButton = OptionsPrivate.GetDisplayButton(child.id)
childButton:UpdateOffset()
end
end
@@ -618,12 +618,12 @@ local methods = {
-- And this fills in the leafs
DuplicateAuras(self.data, newGroup, mapping)
local button = WeakAuras.GetDisplayButton(newGroup.id)
local button = OptionsPrivate.GetDisplayButton(newGroup.id)
button.callbacks.UpdateExpandButton()
button:UpdateParentWarning()
for old, new in pairs(mapping) do
local button = WeakAuras.GetDisplayButton(new.id)
local button = OptionsPrivate.GetDisplayButton(new.id)
button.callbacks.UpdateExpandButton()
button:UpdateParentWarning()
end
@@ -679,7 +679,7 @@ local methods = {
OptionsPrivate.Private.AddParents(parentData)
WeakAuras.ClearAndUpdateOptions(parentData.id)
self:SetGroupOrder(index - 1, #parentData.controlledChildren);
local otherbutton = WeakAuras.GetDisplayButton(parentData.controlledChildren[index]);
local otherbutton = OptionsPrivate.GetDisplayButton(parentData.controlledChildren[index]);
otherbutton:SetGroupOrder(index, #parentData.controlledChildren);
OptionsPrivate.SortDisplayButtons();
local updata = {duration = 0.15, type = "custom", use_translate = true, x = 0, y = -32};
@@ -718,7 +718,7 @@ local methods = {
OptionsPrivate.Private.AddParents(parentData)
WeakAuras.ClearAndUpdateOptions(parentData.id)
self:SetGroupOrder(index + 1, #parentData.controlledChildren);
local otherbutton = WeakAuras.GetDisplayButton(parentData.controlledChildren[index]);
local otherbutton = OptionsPrivate.GetDisplayButton(parentData.controlledChildren[index]);
otherbutton:SetGroupOrder(index, #parentData.controlledChildren);
OptionsPrivate.SortDisplayButtons()
local updata = {duration = 0.15, type = "custom", use_translate = true, x = 0, y = -32};
@@ -739,12 +739,12 @@ local methods = {
local suspended = OptionsPrivate.Private.PauseAllDynamicGroups()
if(self.view.visibility == 2) then
for child in OptionsPrivate.Private.TraverseAllChildren(self.data) do
WeakAuras.GetDisplayButton(child.id):PriorityHide(2);
OptionsPrivate.GetDisplayButton(child.id):PriorityHide(2);
end
self:PriorityHide(2)
else
for child in OptionsPrivate.Private.TraverseAllChildren(self.data) do
WeakAuras.GetDisplayButton(child.id):PriorityShow(2);
OptionsPrivate.GetDisplayButton(child.id):PriorityShow(2);
end
self:PriorityShow(2)
end
@@ -837,7 +837,7 @@ local methods = {
if (not self.data.controlledChildren) then
local convertMenu = {};
for regionType, regionData in pairs(WeakAuras.regionOptions) do
for regionType, regionData in pairs(OptionsPrivate.Private.regionOptions) do
if(regionType ~= "group" and regionType ~= "dynamicgroup" and regionType ~= self.data.regionType) then
tinsert(convertMenu, {
text = regionData.displayName,
@@ -1016,7 +1016,7 @@ local methods = {
tinsert(namestable, {" ", "|cFF00FFFF"..L["Control-click to select multiple displays"]});
end
tinsert(namestable, {" ", "|cFF00FFFF"..L["Shift-click to create chat link"]});
local regionData = WeakAuras.regionOptions[data.regionType or ""]
local regionData = OptionsPrivate.Private.regionOptions[data.regionType or ""]
local displayName = regionData and regionData.displayName or "";
self:SetDescription({data.id, displayName}, unpack(namestable));
end,
@@ -1091,14 +1091,14 @@ local methods = {
end
WeakAuras.ClearAndUpdateOptions(self.data.id);
WeakAuras.UpdateGroupOrders(parentData);
local parentButton = WeakAuras.GetDisplayButton(parentData.id)
local parentButton = OptionsPrivate.GetDisplayButton(parentData.id)
if(#parentData.controlledChildren == 0) then
parentButton:DisableExpand()
end
parentButton:UpdateParentWarning()
for child in OptionsPrivate.Private.TraverseAllChildren(self.data) do
local button = WeakAuras.GetDisplayButton(child.id)
local button = OptionsPrivate.GetDisplayButton(child.id)
button:UpdateOffset()
end
@@ -1471,7 +1471,7 @@ local methods = {
["UpdateParentWarning"] = function(self)
self:UpdateWarning()
for parent in OptionsPrivate.Private.TraverseParents(self.data) do
local parentButton = WeakAuras.GetDisplayButton(parent.id)
local parentButton = OptionsPrivate.GetDisplayButton(parent.id)
if parentButton then
parentButton:UpdateWarning()
end
@@ -1585,17 +1585,17 @@ local methods = {
end,
["RecheckParentVisibility"] = function(self)
if self.data.parent then
local parentButton = WeakAuras.GetDisplayButton(self.data.parent)
local parentButton = OptionsPrivate.GetDisplayButton(self.data.parent)
parentButton:RecheckVisibility()
else
WeakAuras.OptionsFrame().loadedButton:RecheckVisibility()
WeakAuras.OptionsFrame().unloadedButton:RecheckVisibility()
OptionsPrivate.Private.OptionsFrame().loadedButton:RecheckVisibility()
OptionsPrivate.Private.OptionsFrame().unloadedButton:RecheckVisibility()
end
end,
["RecheckVisibility"] = function(self)
local none, all = true, true;
for child in OptionsPrivate.Private.TraverseAllChildren(self.data) do
local childButton = WeakAuras.GetDisplayButton(child.id);
local childButton = OptionsPrivate.GetDisplayButton(child.id);
if(childButton) then
if(childButton:GetVisibility() ~= 2) then
all = false;
@@ -1693,7 +1693,7 @@ local methods = {
self:ReleaseThumbnail()
self:AcquireThumbnail()
else
local option = WeakAuras.regionOptions[self.thumbnailType]
local option = OptionsPrivate.Private.regionOptions[self.thumbnailType]
if option and option.modifyThumbnail then
option.modifyThumbnail(self.frame, self.thumbnail, self.data)
end
@@ -1707,7 +1707,7 @@ local methods = {
if self.thumbnail then
local regionType = self.thumbnailType
local option = WeakAuras.regionOptions[regionType]
local option = OptionsPrivate.Private.regionOptions[regionType]
option.releaseThumbnail(self.thumbnail)
self.thumbnail = nil
end
@@ -1727,7 +1727,7 @@ local methods = {
local regionType = self.data.regionType
self.thumbnailType = regionType
local option = WeakAuras.regionOptions[regionType]
local option = OptionsPrivate.Private.regionOptions[regionType]
if option and option.acquireThumbnail then
self.thumbnail = option.acquireThumbnail(button, self.data)
self:SetIcon(self.thumbnail)
@@ -1,4 +1,5 @@
if not WeakAuras.IsLibsOK() then return end
local AddonName, OptionsPrivate = ...
local Type, Version = "WeakAurasNewButton", 25
local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
@@ -55,7 +56,7 @@ local methods = {
end
end,
["SetThumbnail"] = function(self, regionType, data)
local regionData = WeakAuras.regionOptions[regionType]
local regionData = OptionsPrivate.Private.regionOptions[regionType]
if regionData and regionData.acquireThumbnail then
local thumbnail = regionData.acquireThumbnail(self.frame, data)
self:SetIcon(thumbnail)
@@ -65,7 +66,7 @@ local methods = {
end,
["ReleaseThumbnail"] = function(self)
if self.thumbnail then
local regionData = WeakAuras.regionOptions[self.thumbnailType]
local regionData = OptionsPrivate.Private.regionOptions[self.thumbnailType]
if regionData and regionData.releaseThumbnail then
regionData.releaseThumbnail(self.thumbnail)
end
@@ -84,7 +84,7 @@ local methods = {
self:ReleaseThumbnail()
self:AcquireThumbnail()
else
local option = WeakAuras.regionOptions[self.thumbnailType]
local option = OptionsPrivate.Private.regionOptions[self.thumbnailType]
if option and option.modifyThumbnail then
option.modifyThumbnail(self.frame, self.thumbnail, self.data)
end
@@ -98,7 +98,7 @@ local methods = {
if self.thumbnail then
local regionType = self.thumbnailType
local option = WeakAuras.regionOptions[regionType]
local option = OptionsPrivate.Private.regionOptions[regionType]
if self.thumbnail.icon then
self.thumbnail.icon:SetDesaturated(false)
end
@@ -121,7 +121,7 @@ local methods = {
local regionType = self.data.regionType
self.thumbnailType = regionType
local option = WeakAuras.regionOptions[regionType]
local option = OptionsPrivate.Private.regionOptions[regionType]
if option and option.acquireThumbnail then
self.thumbnail = option.acquireThumbnail(button, self.data)
if self.thumbnail.icon then
@@ -214,7 +214,7 @@ local methods = {
self:ReleaseThumbnail()
self:AcquireThumbnail()
else
local option = WeakAuras.regionOptions[self.thumbnailType]
local option = OptionsPrivate.Private.regionOptions[self.thumbnailType]
if option and option.modifyThumbnail then
option.modifyThumbnail(self.frame, self.thumbnail, self.data)
end
@@ -228,7 +228,7 @@ local methods = {
if self.thumbnail then
local regionType = self.thumbnailType
local option = WeakAuras.regionOptions[regionType]
local option = OptionsPrivate.Private.regionOptions[regionType]
if self.thumbnail.icon then
self.thumbnail.icon:SetDesaturated(false)
end
@@ -251,7 +251,7 @@ local methods = {
local regionType = self.data.regionType
self.thumbnailType = regionType
local option = WeakAuras.regionOptions[regionType]
local option = OptionsPrivate.Private.regionOptions[regionType]
if option and option.acquireThumbnail then
self.thumbnail = option.acquireThumbnail(button, self.data)
if self.thumbnail.icon then
+6 -6
View File
@@ -17,8 +17,8 @@ local setAll = OptionsPrivate.commonOptions.CreateSetAll("animation", getAll)
local function filterAnimPresetTypes(intable, id)
local ret = {};
OptionsPrivate.Private.EnsureRegion(id)
local region = WeakAuras.regions[id] and WeakAuras.regions[id].region;
local regionType = WeakAuras.regions[id] and WeakAuras.regions[id].regionType;
local region = OptionsPrivate.Private.regions[id] and OptionsPrivate.Private.regions[id].region;
local regionType = OptionsPrivate.Private.regions[id] and OptionsPrivate.Private.regions[id].regionType;
local data = WeakAuras.GetData(id);
if data.controlledChildren then
@@ -82,8 +82,8 @@ function OptionsPrivate.GetAnimationOptions(data)
if(field == "main") then
local region = OptionsPrivate.Private.EnsureRegion(id)
OptionsPrivate.Private.Animate("display", data.uid, "main", data.animation.main, region, false, nil, true);
if(WeakAuras.clones[id]) then
for cloneId, cloneRegion in pairs(WeakAuras.clones[id]) do
if(OptionsPrivate.Private.clones[id]) then
for cloneId, cloneRegion in pairs(OptionsPrivate.Private.clones[id]) do
OptionsPrivate.Private.Animate("display", data.uid, "main", data.animation.main, cloneRegion, false, nil, true, cloneId);
end
end
@@ -928,8 +928,8 @@ function OptionsPrivate.GetAnimationOptions(data)
local function extraSetFunction()
OptionsPrivate.Private.Animate("display", data.uid, "main", data.animation.main,
OptionsPrivate.Private.EnsureRegion(id), false, nil, true)
if(WeakAuras.clones[id]) then
for cloneId, cloneRegion in pairs(WeakAuras.clones[id]) do
if(OptionsPrivate.Private.clones[id]) then
for cloneId, cloneRegion in pairs(OptionsPrivate.Private.clones[id]) do
OptionsPrivate.Private.Animate("display", data.uid, "main", data.animation.main,
cloneRegion, false, nil, true, cloneId)
end
+1 -2
View File
@@ -2,7 +2,6 @@ if not WeakAuras.IsLibsOK() then return end
local AddonName, OptionsPrivate = ...
local L = WeakAuras.L
local regionOptions = WeakAuras.regionOptions
local commonOptionsCache = {}
OptionsPrivate.commonOptionsCache = commonOptionsCache
@@ -500,7 +499,7 @@ local function replaceNameDescFuncs(intable, data, subOption)
local index = string.find(input, ".", 1, true);
if (index) then
local regionType = string.sub(input, 1, index - 1);
return regionOptions[regionType] and regionType;
return OptionsPrivate.Private.regionOptions[regionType] and regionType;
end
return nil;
end
+4 -5
View File
@@ -1,7 +1,6 @@
if not WeakAuras.IsLibsOK() then return end
local AddonName, OptionsPrivate = ...
local L = WeakAuras.L
local regionOptions = WeakAuras.regionOptions
local flattenRegionOptions = OptionsPrivate.commonOptions.flattenRegionOptions
local fixMetaOrders = OptionsPrivate.commonOptions.fixMetaOrders
@@ -90,8 +89,8 @@ function OptionsPrivate.GetDisplayOptions(data)
local hasSubElements = false
if(regionOptions[data.regionType]) then
regionOption = regionOptions[data.regionType].create(id, data);
if(OptionsPrivate.Private.regionOptions[data.regionType]) then
regionOption = OptionsPrivate.Private.regionOptions[data.regionType].create(id, data);
if data.subRegions then
local subIndex = {}
@@ -210,8 +209,8 @@ function OptionsPrivate.GetDisplayOptions(data)
for child in OptionsPrivate.Private.TraverseLeafs(data) do
if child and not handledRegionTypes[child.regionType] then
handledRegionTypes[child.regionType] = true;
if regionOptions[child.regionType] then
allOptions = union(allOptions, regionOptions[child.regionType].create(id, data));
if OptionsPrivate.Private.regionOptions[child.regionType] then
allOptions = union(allOptions, OptionsPrivate.Private.regionOptions[child.regionType].create(id, data));
else
unsupportedCount = unsupportedCount + 1
allOptions["__unsupported" .. unsupportedCount] = {
+2 -3
View File
@@ -2,15 +2,14 @@ if not WeakAuras.IsLibsOK() then return end
local AddonName, OptionsPrivate = ...
local L = WeakAuras.L
local regionOptions = WeakAuras.regionOptions;
local parsePrefix = OptionsPrivate.commonOptions.parsePrefix
local flattenRegionOptions = OptionsPrivate.commonOptions.flattenRegionOptions
function OptionsPrivate.GetGroupOptions(data)
local regionOption;
local id = data.id
if (regionOptions[data.regionType]) then
regionOption = regionOptions[data.regionType].create(id, data);
if (OptionsPrivate.Private.regionOptions[data.regionType]) then
regionOption = OptionsPrivate.Private.regionOptions[data.regionType].create(id, data);
else
regionOption = {
[data.regionType] = {
@@ -17,7 +17,7 @@ local frameChooserBox
local oldFocus
local oldFocusName
function OptionsPrivate.StartFrameChooser(data, path)
local frame = WeakAuras.OptionsFrame();
local frame = OptionsPrivate.Private.OptionsFrame();
if not(frameChooserFrame) then
frameChooserFrame = CreateFrame("Frame");
frameChooserBox = CreateFrame("Frame", nil, frameChooserFrame);
@@ -50,7 +50,7 @@ function OptionsPrivate.StartFrameChooser(data, path)
if(focusName == "WorldFrame" or not focusName) then
focusName = nil;
local focusIsGroup = false;
for id, regionData in pairs(WeakAuras.regions) do
for id, regionData in pairs(OptionsPrivate.Private.regions) do
if(regionData.region:IsVisible() and MouseIsOver(regionData.region)) then
local isGroup = regionData.regionType == "group" or regionData.regionType == "dynamicgroup";
if (not focusName or (not isGroup and focusIsGroup)) then
@@ -380,7 +380,7 @@ local function BuildAlignLines(mover)
skipIds[child.id] = true
end
for k, v in pairs(WeakAuras.displayButtons) do
for k, v in pairs(OptionsPrivate.displayButtons) do
local region = WeakAuras.GetRegion(v.data.id)
if not skipIds[k] and v.view.visibility ~= 0 and region then
local scale = region:GetEffectiveScale() / UIParent:GetEffectiveScale()
+10 -11
View File
@@ -17,8 +17,7 @@ local AceConfigRegistry = LibStub("AceConfigRegistry-3.0")
local WeakAuras = WeakAuras
local L = WeakAuras.L
local displayButtons = WeakAuras.displayButtons
local regionOptions = WeakAuras.regionOptions
local displayButtons = OptionsPrivate.displayButtons
local tempGroup = OptionsPrivate.tempGroup
local aceOptions = {}
@@ -138,11 +137,11 @@ function OptionsPrivate.CreateFrame()
OptionsPrivate.Private.ClearFakeStates()
for id, data in pairs(WeakAuras.regions) do
for id, data in pairs(OptionsPrivate.Private.regions) do
data.region:Collapse()
data.region:OptionsClosed()
if WeakAuras.clones[id] then
for _, cloneRegion in pairs(WeakAuras.clones[id]) do
if OptionsPrivate.Private.clones[id] then
for _, cloneRegion in pairs(OptionsPrivate.Private.clones[id]) do
cloneRegion:Collapse()
cloneRegion:OptionsClosed()
end
@@ -1126,7 +1125,7 @@ function OptionsPrivate.CreateFrame()
end
if targetId then
local pickedButton = WeakAuras.GetDisplayButton(targetId)
local pickedButton = OptionsPrivate.GetDisplayButton(targetId)
if pickedButton.data.controlledChildren then
targetIsDynamicGroup = pickedButton.data.regionType == "dynamicgroup"
else
@@ -1180,7 +1179,7 @@ function OptionsPrivate.CreateFrame()
end
local regionTypesSorted = {}
for regionType, regionData in pairs(regionOptions) do
for regionType, regionData in pairs(OptionsPrivate.Private.regionOptions) do
tinsert(regionTypesSorted, regionType)
end
@@ -1201,14 +1200,14 @@ function OptionsPrivate.CreateFrame()
return false
end
return regionOptions[a].displayName < regionOptions[b].displayName
return OptionsPrivate.Private.regionOptions[a].displayName < OptionsPrivate.Private.regionOptions[b].displayName
end)
for index, regionType in ipairs(regionTypesSorted) do
if (targetIsDynamicGroup and (regionType == "group" or regionType == "dynamicgroup")) then
-- Dynamic groups can't contain group/dynamic groups
else
local regionData = regionOptions[regionType]
local regionData = OptionsPrivate.Private.regionOptions[regionType]
local button = AceGUI:Create("WeakAurasNewButton")
button:SetTitle(regionData.displayName)
if(type(regionData.icon) == "string" or type(regionData.icon) == "table") then
@@ -1262,8 +1261,8 @@ function OptionsPrivate.CreateFrame()
}
if not frame.importThumbnail then
local thumbnail = regionOptions["text"].createThumbnail(UIParent)
regionOptions["text"].modifyThumbnail(UIParent, thumbnail, data)
local thumbnail = OptionsPrivate.Private.regionOptions["text"].createThumbnail(UIParent)
OptionsPrivate.Private.regionOptions["text"].modifyThumbnail(UIParent, thumbnail, data)
thumbnail.mask:SetPoint("BOTTOMLEFT", thumbnail, "BOTTOMLEFT", 3, 3)
thumbnail.mask:SetPoint("TOPRIGHT", thumbnail, "TOPRIGHT", -3, -3)
frame.importThumbnail = thumbnail
+7 -7
View File
@@ -1676,7 +1676,7 @@ local methods = {
uidMap:ChangeId(uid, existingData.id)
else
if WeakAuras.GetData(uidMap:GetIdFor(uid)) then
local newId = WeakAuras.FindUnusedId(uidMap:GetIdFor(uid))
local newId = OptionsPrivate.Private.FindUnusedId(uidMap:GetIdFor(uid))
uidMap:ChangeId(uid, newId)
end
end
@@ -1731,7 +1731,7 @@ local methods = {
if string.sub(data.id, 1, #targetName) == targetName then
-- Our name is already prefixed with targetName, don't try to improve
else
local newId = WeakAuras.FindUnusedId(targetName)
local newId = OptionsPrivate.Private.FindUnusedId(targetName)
local oldid = data.id
WeakAuras.Rename(data, newId)
if targetName[aura.uid] then -- We can hope that the aura the squatter renames itself, so try again
@@ -1851,7 +1851,7 @@ local methods = {
data.authorMode = nil
WeakAuras.Add(data)
OptionsPrivate.Private.SetHistory(data.uid, data, "import")
local button = WeakAuras.GetDisplayButton(data.id)
local button = OptionsPrivate.GetDisplayButton(data.id)
button:SetData(data)
if (data.parent) then
local parentIsDynamicGroup = structureUidMap:GetParentIsDynamicGroup(uid)
@@ -1875,14 +1875,14 @@ local methods = {
for i = #phase2Order, 1, -1 do
local uid = phase2Order[i]
local data = OptionsPrivate.Private.GetDataByUID(uid)
local displayButton = WeakAuras.GetDisplayButton(data.id)
local displayButton = OptionsPrivate.GetDisplayButton(data.id)
displayButton:UpdateOffset()
end
end,
ImportPhase1 = function(self, uidMap, uid, phase2Order)
tinsert(phase2Order, uid)
local data = uidMap:GetPhase1Data(uid)
local newId = WeakAuras.FindUnusedId(data.id)
local newId = OptionsPrivate.Private.FindUnusedId(data.id)
uidMap:ChangeId(uid, newId)
data.preferToUpdate = false
@@ -1913,7 +1913,7 @@ local methods = {
WeakAuras.Add(data)
OptionsPrivate.Private.SetHistory(data.uid, data, "import")
local button = WeakAuras.GetDisplayButton(data.id)
local button = OptionsPrivate.GetDisplayButton(data.id)
button:SetData(data)
if (data.parent) then
local parentIsDynamicGroup = uidMap:GetParentIsDynamicGroup(uid)
@@ -1936,7 +1936,7 @@ local methods = {
for i = #phase2Order, 1, -1 do
local uid = phase2Order[i]
local data = OptionsPrivate.Private.GetDataByUID(uid)
local displayButton = WeakAuras.GetDisplayButton(data.id)
local displayButton = OptionsPrivate.GetDisplayButton(data.id)
displayButton:UpdateOffset()
end
+1 -1
View File
@@ -149,7 +149,7 @@ local function modifyThumbnail(parent, region, data)
local model = region.model
region:SetScript("OnUpdate", function()
local optionsFrame = WeakAuras.OptionsFrame();
local optionsFrame = OptionsPrivate.Private.OptionsFrame();
if optionsFrame then
model:SetParent(optionsFrame)
region:SetScript("OnUpdate", nil)
@@ -6,7 +6,7 @@ local AddonName, OptionsPrivate = ...
local texture_types = WeakAuras.StopMotion.texture_types;
local texture_data = WeakAuras.StopMotion.texture_data;
local animation_types = WeakAuras.StopMotion.animation_types;
local setTile = WeakAuras.setTile;
local setTile = WeakAuras.setTile
local function setTextureFunc(textureWidget, texturePath, textureName)
local data = texture_data[texturePath];
@@ -23,7 +23,7 @@ local function AdjustConditions(data, replacements)
end
end
function WeakAuras.DeleteSubRegion(data, index, regionType)
function OptionsPrivate.DeleteSubRegion(data, index, regionType)
if not data.subRegions then
return
end
@@ -123,7 +123,7 @@ function OptionsPrivate.AddUpDownDeleteDuplicate(options, parentData, index, sub
end
options.__delete = function()
for child in OptionsPrivate.Private.TraverseLeafsOrAura(parentData) do
WeakAuras.DeleteSubRegion(child, index, subRegionType)
OptionsPrivate.DeleteSubRegion(child, index, subRegionType)
end
WeakAuras.ClearAndUpdateOptions(parentData.id)
end
+50 -49
View File
@@ -19,7 +19,7 @@ local L = WeakAuras.L
local ADDON_NAME = "WeakAurasOptions";
local displayButtons = {};
WeakAuras.displayButtons = displayButtons;
OptionsPrivate.displayButtons = displayButtons;
local spellCache = WeakAuras.spellCache;
local savedVars = {};
@@ -93,13 +93,13 @@ function OptionsPrivate.DuplicateAura(data, newParent, massEdit, targetIndex)
OptionsPrivate.Private.AddParents(parentData)
for index, id in pairs(parentData.controlledChildren) do
local childButton = WeakAuras.GetDisplayButton(id)
local childButton = OptionsPrivate.GetDisplayButton(id)
childButton:SetGroup(parentData.id, parentData.regionType == "dynamicgroup")
childButton:SetGroupOrder(index, #parentData.controlledChildren)
end
if not massEdit then
local button = WeakAuras.GetDisplayButton(parentData.id)
local button = OptionsPrivate.GetDisplayButton(parentData.id)
button.callbacks.UpdateExpandButton()
button:UpdateParentWarning()
end
@@ -244,7 +244,7 @@ local function commonParent(controlledChildren)
local targetIndex = math.huge
for index, id in ipairs(controlledChildren) do
local childData = WeakAuras.GetData(id);
local childButton = WeakAuras.GetDisplayButton(id)
local childButton = OptionsPrivate.GetDisplayButton(id)
targetIndex = min(targetIndex, childButton:GetGroupOrder() or math.huge)
if (parent == nil) then
@@ -262,13 +262,13 @@ end
local function CreateNewGroupFromSelection(regionType, resetChildPositions)
local data = {
id = WeakAuras.FindUnusedId(tempGroup.controlledChildren[1].." Group"),
id = OptionsPrivate.Private.FindUnusedId(tempGroup.controlledChildren[1].." Group"),
regionType = regionType,
};
WeakAuras.DeepMixin(data, WeakAuras.data_stub)
WeakAuras.DeepMixin(data, OptionsPrivate.Private.data_stub)
data.internalVersion = WeakAuras.InternalVersion()
WeakAuras.validate(data, WeakAuras.regionTypes[regionType].default);
OptionsPrivate.Private.validate(data, OptionsPrivate.Private.regionTypes[regionType].default);
local parent, targetIndex = commonParent(tempGroup.controlledChildren)
@@ -283,7 +283,7 @@ local function CreateNewGroupFromSelection(regionType, resetChildPositions)
WeakAuras.UpdateGroupOrders(parentData);
OptionsPrivate.ClearOptions(parentData.id);
local parentButton = WeakAuras.GetDisplayButton(parent)
local parentButton = OptionsPrivate.GetDisplayButton(parent)
parentButton.callbacks.UpdateExpandButton();
parentButton:Expand();
parentButton:ReloadTooltip();
@@ -295,7 +295,7 @@ local function CreateNewGroupFromSelection(regionType, resetChildPositions)
for index, childId in pairs(tempGroup.controlledChildren) do
local childData = WeakAuras.GetData(childId);
local childButton = WeakAuras.GetDisplayButton(childId)
local childButton = OptionsPrivate.GetDisplayButton(childId)
local oldParent = childData.parent
local oldParentData = WeakAuras.GetData(oldParent)
if (oldParent) then
@@ -308,7 +308,7 @@ local function CreateNewGroupFromSelection(regionType, resetChildPositions)
OptionsPrivate.Private.AddParents(oldParentData)
WeakAuras.UpdateGroupOrders(oldParentData);
WeakAuras.ClearAndUpdateOptions(oldParent);
local oldParentButton = WeakAuras.GetDisplayButton(oldParent)
local oldParentButton = OptionsPrivate.GetDisplayButton(oldParent)
oldParentButton.callbacks.UpdateExpandButton();
oldParentButton:ReloadTooltip()
oldParentButton:UpdateParentWarning()
@@ -328,7 +328,7 @@ local function CreateNewGroupFromSelection(regionType, resetChildPositions)
childButton:SetGroupOrder(index, #data.controlledChildren);
end
local button = WeakAuras.GetDisplayButton(data.id);
local button = OptionsPrivate.GetDisplayButton(data.id);
button.callbacks.UpdateExpandButton();
button:UpdateParentWarning()
OptionsPrivate.SortDisplayButtons();
@@ -455,7 +455,7 @@ StaticPopupDialogs["WEAKAURAS_CONFIRM_DELETE"] = {
if self.data.parents then
for id in pairs(self.data.parents) do
local parentData = WeakAuras.GetData(id)
local parentButton = WeakAuras.GetDisplayButton(id)
local parentButton = OptionsPrivate.GetDisplayButton(id)
WeakAuras.UpdateGroupOrders(parentData)
if(#parentData.controlledChildren == 0) then
parentButton:DisableExpand()
@@ -509,14 +509,6 @@ function OptionsPrivate.ConfirmDelete(toDelete, parents)
end
end
function WeakAuras.OptionsFrame()
if(frame) then
return frame;
else
return nil;
end
end
local function AfterScanForLoads()
if(frame) then
if (frame:IsVisible()) then
@@ -558,19 +550,19 @@ end
local function OnRename(event, uid, oldid, newid)
local data = OptionsPrivate.Private.GetDataByUID(uid)
WeakAuras.displayButtons[newid] = WeakAuras.displayButtons[oldid];
WeakAuras.displayButtons[newid]:SetData(data)
WeakAuras.displayButtons[oldid] = nil;
OptionsPrivate.displayButtons[newid] = OptionsPrivate.displayButtons[oldid];
OptionsPrivate.displayButtons[newid]:SetData(data)
OptionsPrivate.displayButtons[oldid] = nil;
OptionsPrivate.ClearOptions(oldid)
WeakAuras.displayButtons[newid]:SetTitle(newid);
OptionsPrivate.displayButtons[newid]:SetTitle(newid);
collapsedOptions[newid] = collapsedOptions[oldid]
collapsedOptions[oldid] = nil
if(data.controlledChildren) then
for _, childId in pairs(data.controlledChildren) do
WeakAuras.displayButtons[childId]:SetGroup(newid)
OptionsPrivate.displayButtons[childId]:SetGroup(newid)
end
end
@@ -589,12 +581,21 @@ local function OnRename(event, uid, oldid, newid)
end
end
local function OptionsFrame()
if(frame) then
return frame
else
return nil
end
end
function WeakAuras.ToggleOptions(msg, Private)
if not Private then
return
end
if not OptionsPrivate.Private then
OptionsPrivate.Private = Private
Private.OptionsFrame = OptionsFrame
OptionsPrivate.Private.callbacks:RegisterCallback("AuraWarningsUpdated", function(event, uid)
local id = OptionsPrivate.Private.UIDtoID(uid)
if displayButtons[id] then
@@ -603,7 +604,7 @@ function WeakAuras.ToggleOptions(msg, Private)
end
local data = Private.GetDataByUID(uid)
if data and data.parent then
local button = WeakAuras.GetDisplayButton(data.parent);
local button = OptionsPrivate.GetDisplayButton(data.parent);
if button then
button:UpdateParentWarning()
end
@@ -741,7 +742,7 @@ local function LayoutDisplayButtons(msg)
button:PriorityShow(1);
end
end
WeakAuras.OptionsFrame().loadedButton:RecheckVisibility()
OptionsPrivate.Private.OptionsFrame().loadedButton:RecheckVisibility()
end
OptionsPrivate.Private.ResumeAllDynamicGroups(suspended)
@@ -905,8 +906,8 @@ function OptionsPrivate.ConvertDisplay(data, newType)
local visibility = displayButtons[id]:GetVisibility();
displayButtons[id]:PriorityHide(2);
if WeakAuras.regions[id] then
WeakAuras.regions[id].region:Collapse()
if OptionsPrivate.Private.regions[id] then
OptionsPrivate.Private.regions[id].region:Collapse()
end
OptionsPrivate.Private.CollapseAllClones(id);
@@ -936,7 +937,7 @@ function WeakAuras.UpdateGroupOrders(data)
if(data.controlledChildren) then
local total = #data.controlledChildren;
for index, id in pairs(data.controlledChildren) do
local button = WeakAuras.GetDisplayButton(id);
local button = OptionsPrivate.GetDisplayButton(id);
button:SetGroupOrder(index, total);
end
end
@@ -1326,7 +1327,7 @@ function OptionsPrivate.PickDisplayMultipleShift(target)
end
end
function WeakAuras.GetDisplayButton(id)
function OptionsPrivate.GetDisplayButton(id)
if(id and displayButtons[id]) then
return displayButtons[id];
end
@@ -1351,7 +1352,7 @@ function OptionsPrivate.StartGrouping(data)
local children = {};
-- start grouping for selected buttons
for index, childId in ipairs(tempGroup.controlledChildren) do
local button = WeakAuras.GetDisplayButton(childId);
local button = OptionsPrivate.GetDisplayButton(childId);
button:StartGrouping(tempGroup.controlledChildren, true);
children[childId] = true;
end
@@ -1386,11 +1387,11 @@ function OptionsPrivate.Ungroup(data)
if (frame.pickedDisplay == tempGroup and #tempGroup.controlledChildren > 0) then
for index, childId in ipairs(tempGroup.controlledChildren) do
local button = WeakAuras.GetDisplayButton(childId);
local button = OptionsPrivate.GetDisplayButton(childId);
button:Ungroup(data);
end
else
local button = WeakAuras.GetDisplayButton(data.id);
local button = OptionsPrivate.GetDisplayButton(data.id);
button:Ungroup(data);
end
WeakAuras.FillOptions()
@@ -1438,8 +1439,8 @@ local function CompareButtonOrder(a, b)
if (parents[parent]) then
-- We have found the common parent, the last node in the chain is
-- Compare the previous nodes GroupOrder
local aButton = WeakAuras.GetDisplayButton(parents[parent])
local bButton = WeakAuras.GetDisplayButton(bNode)
local aButton = OptionsPrivate.GetDisplayButton(parents[parent])
local bButton = OptionsPrivate.GetDisplayButton(bNode)
return aButton:GetGroupOrder() < bButton:GetGroupOrder()
end
lastBParent = parent
@@ -1448,8 +1449,8 @@ local function CompareButtonOrder(a, b)
end
-- If we are here there was no common parent
local aButton = WeakAuras.GetDisplayButton(lastAParent)
local bButton = WeakAuras.GetDisplayButton(lastBParent)
local aButton = OptionsPrivate.GetDisplayButton(lastAParent)
local bButton = OptionsPrivate.GetDisplayButton(lastBParent)
return aButton.data.id < bButton.data.id
end
@@ -1518,7 +1519,7 @@ function OptionsPrivate.StartDrag(mainAura)
-- set dragging for selected buttons in reverse for ordering
for child in OptionsPrivate.Private.TraverseAllChildren(tempGroup) do
local button = WeakAuras.GetDisplayButton(child.id);
local button = OptionsPrivate.GetDisplayButton(child.id);
button:DragStart("MULTI", true, mainAura, size)
children[child.id] = true
end
@@ -1534,7 +1535,7 @@ function OptionsPrivate.StartDrag(mainAura)
local mode = "GROUP"
local children = {};
for child in OptionsPrivate.Private.TraverseAll(mainAura) do
local button = WeakAuras.GetDisplayButton(child.id);
local button = OptionsPrivate.GetDisplayButton(child.id);
button:DragStart(mode, true, mainAura)
children[child.id] = true
end
@@ -1665,11 +1666,11 @@ end
function WeakAuras.SetMoverSizer(id)
OptionsPrivate.Private.EnsureRegion(id)
if WeakAuras.regions[id].region.toShow then
frame.moversizer:SetToRegion(WeakAuras.regions[id].region, db.displays[id])
if OptionsPrivate.Private.regions[id].region.toShow then
frame.moversizer:SetToRegion(OptionsPrivate.Private.regions[id].region, db.displays[id])
else
if WeakAuras.clones[id] then
local _, clone = next(WeakAuras.clones[id])
if OptionsPrivate.Private.clones[id] then
local _, clone = next(OptionsPrivate.Private.clones[id])
if clone then
frame.moversizer:SetToRegion(clone, db.displays[id])
end
@@ -1694,25 +1695,25 @@ function WeakAuras.NewAura(sourceData, regionType, targetId)
local function ensure(t, k, v)
return t and k and v and t[k] == v
end
local new_id = WeakAuras.FindUnusedId("New")
local new_id = OptionsPrivate.Private.FindUnusedId("New")
local data = {id = new_id, regionType = regionType, uid = WeakAuras.GenerateUniqueID()}
WeakAuras.DeepMixin(data, WeakAuras.data_stub);
WeakAuras.DeepMixin(data, OptionsPrivate.Private.data_stub);
if (sourceData) then
WeakAuras.DeepMixin(data, sourceData);
end
data.internalVersion = WeakAuras.InternalVersion();
WeakAuras.validate(data, WeakAuras.regionTypes[regionType].default);
OptionsPrivate.Private.validate(data, OptionsPrivate.Private.regionTypes[regionType].default);
AddDefaultSubRegions(data)
if targetId then
local target = WeakAuras.GetDisplayButton(targetId);
local target = OptionsPrivate.GetDisplayButton(targetId);
local group
if (target) then
if (target:IsGroup()) then
group = target;
else
group = WeakAuras.GetDisplayButton(target.data.parent);
group = OptionsPrivate.GetDisplayButton(target.data.parent);
end
if (group) then
-- Sanity check so that we don't create a group/dynamic group in a group