X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/eeb41892047047322da96e7d6c6b006496b04010..ac5ca8a9cb3cd9c2a6f5850ba5774bd81307fb51:/OmaRF/Events.lua?ds=inline diff --git a/OmaRF/Events.lua b/OmaRF/Events.lua index f5522c3..633319f 100644 --- a/OmaRF/Events.lua +++ b/OmaRF/Events.lua @@ -13,8 +13,12 @@ local UnitIsDeadOrGhost, UnitIsConnected = UnitIsDeadOrGhost, UnitIsConnected; local UnitHasIncomingResurrection = UnitHasIncomingResurrection; local UnitGetTotalHealAbsorbs = UnitGetTotalHealAbsorbs; local UnitHasVehicleUI, UnitTargetsVehicleInRaidUI = UnitHasVehicleUI, UnitTargetsVehicleInRaidUI; +local GetReadyCheckTimeLeft, GetReadyCheckStatus = GetReadyCheckTimeLeft, GetReadyCheckStatus; local UnitGroupRolesAssigned = UnitGroupRolesAssigned; local RAID_CLASS_COLORS = RAID_CLASS_COLORS; +local READY_CHECK_READY_TEXTURE = READY_CHECK_READY_TEXTURE; +local READY_CHECK_NOT_READY_TEXTURE = READY_CHECK_NOT_READY_TEXTURE; +local READY_CHECK_WAITING_TEXTURE = READY_CHECK_WAITING_TEXTURE; local checkIndicators = OmaRFIndicators.CheckIndicators; @@ -30,7 +34,7 @@ local M = {}; OmaRFEvents = M; function M.RegisterEvents(frame) -- events are taken from FrameXML/CompactUnitFrame.lua - -- TODO ready check support, raid marker support, + -- TODO raid marker support, -- player flags support (/afk, /dnd) local displayed = frame.unit ~= frame.displayed and frame.displayed or nil; frame:RegisterUnitEvent("UNIT_HEALTH", frame.unit, displayed); @@ -255,6 +259,22 @@ local function updateRole(frame, unit) end end +local function updateReadyCheck(frame, unit) + local status = GetReadyCheckStatus(unit); + if status == "ready" then + frame.ready:SetTexture(READY_CHECK_READY_TEXTURE); + frame.ready:Show() + elseif status == "notready" then + frame.ready:SetTexture(READY_CHECK_NOT_READY_TEXTURE); + frame.ready:Show() + elseif status == "waiting" then + frame.ready:SetTexture(READY_CHECK_WAITING_TEXTURE); + frame.ready:Show() + else + frame.ready:Hide() + end +end + local eventFuncs = { ["UNIT_HEALTH"] = function(frame) updateHealth(frame, frame.displayed); @@ -312,6 +332,9 @@ local eventFuncs = { ["PLAYER_ROLES_ASSIGNED"] = function(frame) updateRole(frame, frame.unit); end, + ["READY_CHECK"] = function(frame) + updateReadyCheck(frame, frame.unit); + end, ["UPDATE_ALL_BARS"] = function(frame) updateVehicle(frame); updateMaxHealth(frame, frame.displayed); @@ -325,6 +348,7 @@ local eventFuncs = { updateHealAbsorb(frame, frame.displayed); updatePowerColor(frame, frame.displayed); updateIncomingRes(frame, frame.unit); + updateReadyCheck(frame, frame.unit); updateAggro(frame, frame.displayed); updateName(frame, frame.displayed); updateRole(frame, frame.unit); @@ -332,11 +356,15 @@ local eventFuncs = { }; eventFuncs["UNIT_HEALTH_FREQUENT"] = eventFuncs["UNIT_HEALTH"]; eventFuncs["PARTY_MEMBER_DISABLE"] = eventFuncs["PARTY_MEMBER_ENABLE"]; +eventFuncs["READY_CHECK_CONFIRM"] = eventFuncs["READY_CHECK"]; +eventFuncs["READY_CHECK_FINISHED"] = eventFuncs["READY_CHECK"]; eventFuncs["UNIT_ENTERED_VEHICLE"] = eventFuncs["UPDATE_ALL_BARS"]; eventFuncs["UNIT_EXITED_VEHICLE"] = eventFuncs["UPDATE_ALL_BARS"]; eventFuncs["UNIT_PET"] = eventFuncs["UPDATE_ALL_BARS"]; eventFuncs["GROUP_ROSTER_UPDATE"] = eventFuncs["UPDATE_ALL_BARS"]; eventFuncs["PLAYER_ENTERING_WORLD"] = eventFuncs["UPDATE_ALL_BARS"]; +eventFuncs["PLAYER_FOCUS_CHANGED"] = eventFuncs["UPDATE_ALL_BARS"]; + function M.UnitEvent(self, event) eventFuncs[event](self); end