X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/ad5b150d2018f681b13aa4445b375d99adaa6d04..922c2d739aa8ac8793961c0e3f562398e0654beb:/kehys/events.lua diff --git a/kehys/events.lua b/kehys/events.lua index 97f56da..3c15fcf 100644 --- a/kehys/events.lua +++ b/kehys/events.lua @@ -32,29 +32,35 @@ local width = 80; function addon.RegisterEvents(frame) frame:RegisterEvent("PLAYER_ENTERING_WORLD"); - frame:RegisterEvent("PLAYER_REGEN_DISABLED"); - frame:RegisterEvent("READY_CHECK"); - frame:RegisterEvent("READY_CHECK_FINISHED"); - frame:RegisterEvent("GROUP_ROSTER_UPDATE"); frame:RegisterEvent("RAID_TARGET_UPDATE"); if frame.unit == "focus" then frame:RegisterEvent("PLAYER_FOCUS_CHANGED") end + if not frame.nonraid then + frame:RegisterEvent("PLAYER_REGEN_DISABLED"); + frame:RegisterEvent("READY_CHECK"); + frame:RegisterEvent("READY_CHECK_FINISHED"); + frame:RegisterEvent("GROUP_ROSTER_UPDATE"); + end end function addon.RegisterUnitEvents(frame) -- events are taken from FrameXML/CompactUnitFrame.lua local displayed = frame.unit ~= frame.displayed and frame.displayed or nil; - frame:RegisterUnitEvent("UNIT_NAME_UPDATE", frame.unit, displayed); - frame:RegisterUnitEvent("UNIT_THREAT_SITUATION_UPDATE", frame.unit, displayed); - frame:RegisterUnitEvent("READY_CHECK_CONFIRM", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_ENTERED_VEHICLE", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_EXITED_VEHICLE", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_PET", frame.unit, displayed); + if frame.unit ~= "player" then + frame:RegisterUnitEvent("UNIT_NAME_UPDATE", frame.unit, displayed); + end + if not frame.nonraid then + frame:RegisterUnitEvent("UNIT_THREAT_SITUATION_UPDATE", frame.unit, displayed); + frame:RegisterUnitEvent("READY_CHECK_CONFIRM", frame.unit, displayed); + end end local registerUnitEvents = addon.RegisterUnitEvents; local function updateName(frame, unit) local name = UnitName(unit); - if not name then return end + if not name or not frame.name then return end name = ssub(name, 1, 6); if frame.unit == unit then frame.name:SetText(name); @@ -143,12 +149,14 @@ local eventFuncs = { end, ["UNIT_NAME_UPDATE"] = function(frame) updateName(frame, frame.unit); - if frame.guid then - guids[frame.guid] = nil; - end - frame.guid = UnitGUID(frame.unit); - if frame.guid then - guids[frame.guid] = frame; + if not frame.nonraid then + if frame.guid then + guids[frame.guid] = nil; + end + frame.guid = UnitGUID(frame.unit); + if frame.guid then + guids[frame.guid] = frame; + end end end, ["PLAYER_ROLES_ASSIGNED"] = function(frame) @@ -161,29 +169,40 @@ local eventFuncs = { updateRaidMarker(frame, frame.displayed); end, ["PLAYER_REGEN_DISABLED"] = function(frame) - -- clear buff status on entering combat, should also use UnitAura to re-fill - frame.tankcd = {}; - frame.alert = {}; - frame.stacks = {}; - frame.heal = {}; - frame.buff1 = {}; + if not frame.nonraid then + -- clear buff status on entering combat, should also use UnitAura to re-fill + frame.tankcd = {}; + frame.alert = {}; + frame.stacks = {}; + frame.heal = {}; + frame.buff1 = {}; + addon.SetAuras(frame.unit, frame.guid); + end end, ["UPDATE_ALL_BARS"] = function(frame) - updateRole(frame, frame.unit); updateVehicle(frame); - updateAggro(frame, frame.displayed); - updateName(frame, frame.unit); - updateReadyCheck(frame, frame.unit); updateRaidMarker(frame, frame.displayed); - - if frame.guid then - guids[frame.guid] = nil; + if frame.unit ~= "player" then + updateName(frame, frame.unit); end - frame.guid = UnitGUID(frame.unit); - if frame.guid then - guids[frame.guid] = frame; + if not frame.nonraid then + updateRole(frame, frame.unit); + updateAggro(frame, frame.displayed); + updateReadyCheck(frame, frame.unit); + if frame.guid then + guids[frame.guid] = nil; + end + frame.guid = UnitGUID(frame.unit); + if frame.guid then + guids[frame.guid] = frame; + end + frame.tankcd = {}; + frame.alert = {}; + frame.stacks = {}; + frame.heal = {}; + frame.buff1 = {}; + addon.SetAuras(frame.unit, frame.guid); end - -- TODO update initial aura state end, }; eventFuncs["READY_CHECK_CONFIRM"] = eventFuncs["READY_CHECK"];