5.20.1
This commit is contained in:
@@ -952,20 +952,42 @@ function WeakAuras.ScanUnitEvents(event, unit, ...)
|
||||
scannerFrame:Queue(Private.ScanUnitEvents, event, unit, ...)
|
||||
end
|
||||
|
||||
|
||||
local function checkOnUpdateThrottle(data)
|
||||
if data.onUpdateThrottle then
|
||||
local now = GetTime()
|
||||
if not data.lastOnUpdate or (now - data.lastOnUpdate) >= data.onUpdateThrottle then
|
||||
data.lastOnUpdate = now
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function Private.ScanEventsInternal(event_list, event, arg1, arg2, ... )
|
||||
for id, triggers in pairs(event_list) do
|
||||
Private.StartProfileAura(id);
|
||||
Private.ActivateAuraEnvironment(id);
|
||||
local updateTriggerState = false;
|
||||
for triggernum, data in pairs(triggers) do
|
||||
local delay = GenericTrigger.GetDelay(data)
|
||||
if delay == 0 then
|
||||
local allStates = WeakAuras.GetTriggerStateForTrigger(id, triggernum);
|
||||
if (RunTriggerFunc(allStates, data, id, triggernum, event, arg1, arg2, ...)) then
|
||||
updateTriggerState = true
|
||||
if event == "FRAME_UPDATE" then
|
||||
if checkOnUpdateThrottle(data) then
|
||||
local allStates = WeakAuras.GetTriggerStateForTrigger(id, triggernum);
|
||||
if (RunTriggerFunc(allStates, data, id, triggernum, event, arg1, arg2, ...)) then
|
||||
updateTriggerState = true
|
||||
end
|
||||
end
|
||||
else
|
||||
Private.RunTriggerFuncWithDelay(delay, id, triggernum, data, event, arg1, arg2, ...)
|
||||
local delay = GenericTrigger.GetDelay(data)
|
||||
if delay == 0 then
|
||||
local allStates = WeakAuras.GetTriggerStateForTrigger(id, triggernum);
|
||||
if (RunTriggerFunc(allStates, data, id, triggernum, event, arg1, arg2, ...)) then
|
||||
updateTriggerState = true
|
||||
end
|
||||
else
|
||||
Private.RunTriggerFuncWithDelay(delay, id, triggernum, data, event, arg1, arg2, ...)
|
||||
end
|
||||
end
|
||||
end
|
||||
if (updateTriggerState) then
|
||||
@@ -1847,6 +1869,7 @@ function GenericTrigger.Add(data, region)
|
||||
statesParameter = statesParameter,
|
||||
event = trigger.event,
|
||||
events = trigger_events,
|
||||
onUpdateThrottle = trigger.onUpdateThrottle,
|
||||
ignorePartyUnitsInRaid = ignorePartyUnitsInRaid,
|
||||
internal_events = internal_events,
|
||||
loadInternalEventFunc = loadInternalEventFunc,
|
||||
|
||||
Reference in New Issue
Block a user