From cc4f2a33b6dcdce1f3031874af808a36295e9cba Mon Sep 17 00:00:00 2001 From: Bunny67 Date: Mon, 8 Mar 2021 12:58:09 +0300 Subject: [PATCH] frrom retail --- WeakAuras/GenericTrigger.lua | 84 +++++++++++++---------- WeakAuras/Prototypes.lua | 8 +-- WeakAuras/RegionTypes/RegionPrototype.lua | 6 +- 3 files changed, 57 insertions(+), 41 deletions(-) diff --git a/WeakAuras/GenericTrigger.lua b/WeakAuras/GenericTrigger.lua index 576b5ec..b3eced5 100644 --- a/WeakAuras/GenericTrigger.lua +++ b/WeakAuras/GenericTrigger.lua @@ -1831,28 +1831,28 @@ do cdReadyFrame:RegisterEvent("PLAYER_ENTERING_WORLD"); cdReadyFrame:SetScript("OnEvent", function(self, event, ...) Private.StartProfileSystem("generictrigger cd tracking"); - if not WeakAuras.IsPaused() then - if(event == "SPELL_UPDATE_COOLDOWN" - or event == "RUNE_POWER_UPDATE" or event == "RUNE_TYPE_UPDATE" or event == "ACTIONBAR_UPDATE_COOLDOWN" - or event == "PLAYER_TALENT_UPDATE" - or event == "CHARACTER_POINTS_CHANGED") then - Private.CheckCooldownReady(); - elseif(event == "SPELLS_CHANGED") then - Private.CheckSpellKnown(); - Private.CheckCooldownReady(); - elseif(event == "UNIT_SPELLCAST_SENT") then - local unit, name, _ = ...; - if(unit == "player") then - if(gcdSpellName ~= name) then - local icon = GetSpellTexture(name); - gcdSpellName = name; - gcdSpellIcon = icon; - WeakAuras.ScanEvents("GCD_UPDATE"); + if(event == "SPELL_UPDATE_COOLDOWN" + or event == "RUNE_POWER_UPDATE" or event == "RUNE_TYPE_UPDATE" or event == "ACTIONBAR_UPDATE_COOLDOWN" + or event == "PLAYER_TALENT_UPDATE" + or event == "CHARACTER_POINTS_CHANGED") then + Private.CheckCooldownReady(); + elseif(event == "SPELLS_CHANGED") then + Private.CheckSpellKnown(); + Private.CheckCooldownReady(); + elseif(event == "UNIT_SPELLCAST_SENT") then + local unit, name, _ = ...; + if(unit == "player") then + if(gcdSpellName ~= name) then + local icon = GetSpellTexture(name); + gcdSpellName = name; + gcdSpellIcon = icon; + if not WeakAuras.IsPaused() then + WeakAuras.ScanEvents("GCD_UPDATE") end end - elseif(event == "UNIT_INVENTORY_CHANGED" or event == "BAG_UPDATE_COOLDOWN" or event == "PLAYER_EQUIPMENT_CHANGED") then - Private.CheckItemSlotCooldowns(); end + elseif(event == "UNIT_INVENTORY_CHANGED" or event == "BAG_UPDATE_COOLDOWN" or event == "PLAYER_EQUIPMENT_CHANGED") then + Private.CheckItemSlotCooldowns(); end Private.StopProfileSystem("generictrigger cd tracking"); end); @@ -2054,8 +2054,10 @@ do for id, _ in pairs(spells) do local known = WeakAuras.IsSpellKnownIncludingPet(id); if (known ~= spellKnown[id]) then - spellKnown[id] = known; - WeakAuras.ScanEvents("SPELL_COOLDOWN_CHANGED", id); + spellKnown[id] = known + if not WeakAuras.IsPaused() then + WeakAuras.ScanEvents("SPELL_COOLDOWN_CHANGED", id) + end end end end @@ -2087,16 +2089,18 @@ do changed = spellCdsOnlyCooldownRune:HandleSpell(id, startTimeCooldown, durationCooldown) or changed end - if nowReady then - WeakAuras.ScanEvents("SPELL_COOLDOWN_READY", id); - end + if not WeakAuras.IsPaused() then + if nowReady then + WeakAuras.ScanEvents("SPELL_COOLDOWN_READY", id); + end - if changed or chargesChanged then - WeakAuras.ScanEvents("SPELL_COOLDOWN_CHANGED", id); - end + if changed or chargesChanged then + WeakAuras.ScanEvents("SPELL_COOLDOWN_CHANGED", id); + end - if (chargesDifference ~= 0 ) then - WeakAuras.ScanEvents("SPELL_CHARGES_CHANGED", id, chargesDifference, spellCount or 0); + if (chargesDifference ~= 0 ) then + WeakAuras.ScanEvents("SPELL_CHARGES_CHANGED", id, chargesDifference, spellCount or 0); + end end end @@ -2133,7 +2137,9 @@ do itemCdDurs[id] = duration; itemCdExps[id] = endTime; itemCdHandles[id] = timer:ScheduleTimer(ItemCooldownFinished, endTime - time, id); - WeakAuras.ScanEvents("ITEM_COOLDOWN_STARTED", id); + if not WeakAuras.IsPaused() then + WeakAuras.ScanEvents("ITEM_COOLDOWN_STARTED", id) + end itemCdEnabledChanged = false; elseif(itemCdExps[id] ~= endTime) then -- Cooldown is now different @@ -2143,7 +2149,9 @@ do itemCdDurs[id] = duration; itemCdExps[id] = endTime; itemCdHandles[id] = timer:ScheduleTimer(ItemCooldownFinished, endTime - time, id); - WeakAuras.ScanEvents("ITEM_COOLDOWN_CHANGED", id); + if not WeakAuras.IsPaused() then + WeakAuras.ScanEvents("ITEM_COOLDOWN_CHANGED", id) + end itemCdEnabledChanged = false; end elseif(duration > 0) then @@ -2159,7 +2167,7 @@ do itemCdEnabledChanged = false; end end - if (itemCdEnabledChanged) then + if (itemCdEnabledChanged and not WeakAuras.IsPaused()) then WeakAuras.ScanEvents("ITEM_COOLDOWN_CHANGED", id); end end @@ -2184,7 +2192,9 @@ do itemSlotsCdDurs[id] = duration; itemSlotsCdExps[id] = endTime; itemSlotsCdHandles[id] = timer:ScheduleTimer(ItemSlotCooldownFinished, endTime - time, id); - WeakAuras.ScanEvents("ITEM_SLOT_COOLDOWN_STARTED", id); + if not WeakAuras.IsPaused() then + WeakAuras.ScanEvents("ITEM_SLOT_COOLDOWN_STARTED", id) + end elseif(itemSlotsCdExps[id] ~= endTime) then -- Cooldown is now different if(itemSlotsCdHandles[id]) then @@ -2193,7 +2203,9 @@ do itemSlotsCdDurs[id] = duration; itemSlotsCdExps[id] = endTime; itemSlotsCdHandles[id] = timer:ScheduleTimer(ItemSlotCooldownFinished, endTime - time, id); - WeakAuras.ScanEvents("ITEM_SLOT_COOLDOWN_CHANGED", id); + if not WeakAuras.IsPaused() then + WeakAuras.ScanEvents("ITEM_SLOT_COOLDOWN_CHANGED", id) + end end elseif(duration > 0) then -- GCD, do nothing @@ -2210,7 +2222,9 @@ do local newItemId = GetInventoryItemID("player", id); if (itemId ~= newItemId) then - WeakAuras.ScanEvents("ITEM_SLOT_COOLDOWN_ITEM_CHANGED"); + if not WeakAuras.IsPaused() then + WeakAuras.ScanEvents("ITEM_SLOT_COOLDOWN_ITEM_CHANGED") + end itemSlots[id] = newItemId or 0; end end diff --git a/WeakAuras/Prototypes.lua b/WeakAuras/Prototypes.lua index 6959459..e5f5a4b 100644 --- a/WeakAuras/Prototypes.lua +++ b/WeakAuras/Prototypes.lua @@ -830,7 +830,7 @@ Private.load_prototype = { }, { name = "talent", - display = L["Talent selected"], + display = L["Talent"], type = "multiselect", values = valuesForTalentFunction, test = "WeakAuras.CheckTalentByIndex(%d)", @@ -838,7 +838,7 @@ Private.load_prototype = { }, { name = "talent2", - display = L["And Talent selected"], + display = L["And Talent"], type = "multiselect", values = valuesForTalentFunction, test = "WeakAuras.CheckTalentByIndex(%d)", @@ -849,7 +849,7 @@ Private.load_prototype = { }, { name = "talent3", - display = L["And Talent selected"], + display = L["And Talent"], type = "multiselect", values = valuesForTalentFunction, test = "WeakAuras.CheckTalentByIndex(%d)", @@ -902,7 +902,7 @@ Private.load_prototype = { }, { name = "size", - display = L["Instance Type"], + display = L["Instance Size Type"], type = "multiselect", values = "instance_types", init = "arg", diff --git a/WeakAuras/RegionTypes/RegionPrototype.lua b/WeakAuras/RegionTypes/RegionPrototype.lua index ad8df3a..bdf37d7 100644 --- a/WeakAuras/RegionTypes/RegionPrototype.lua +++ b/WeakAuras/RegionTypes/RegionPrototype.lua @@ -743,6 +743,8 @@ function WeakAuras.regionPrototype.AddExpandFunction(data, region, cloneId, pare Private.RunConditions(region, uid, true) region.subRegionEvents:Notify("PreHide") region:Hide(); + region.states = nil + region.state = nil if (cloneId) then Private.ReleaseClone(region.id, cloneId, data.regionType); parent:RemoveChild(id, cloneId) @@ -758,6 +760,8 @@ function WeakAuras.regionPrototype.AddExpandFunction(data, region, cloneId, pare Private.RunConditions(region, uid, true) region.subRegionEvents:Notify("PreHide") region:Hide(); + region.states = nil + region.state = nil if (cloneId) then Private.ReleaseClone(region.id, cloneId, data.regionType); end @@ -794,7 +798,6 @@ function WeakAuras.regionPrototype.AddExpandFunction(data, region, cloneId, pare region.subRegionEvents:Notify("PreShow") - region.justCreated = nil; Private.ApplyFrameLevel(region) region:Show(); Private.PerformActions(data, "start", region); @@ -842,7 +845,6 @@ function WeakAuras.regionPrototype.AddExpandFunction(data, region, cloneId, pare end region.toShow = true; - region.justCreated = nil; if(region.PreShow) then region:PreShow(); end