From: Aleksi Blinnikka Date: Sat, 27 Jan 2018 14:35:07 +0000 (+0200) Subject: Add player flag support, hide blizzard focus X-Git-Url: https://www.aleksib.fi/git/wowui.git/commitdiff_plain/d89467e02ca50fb6e77a6b39cf940c6de28a7bcc?ds=inline Add player flag support, hide blizzard focus --- diff --git a/OmaRF/Events.lua b/OmaRF/Events.lua index 633319f..d4f3e77 100644 --- a/OmaRF/Events.lua +++ b/OmaRF/Events.lua @@ -7,6 +7,7 @@ local UnitName, UnitClass, UnitExists = UnitName, UnitClass, UnitExists; local UnitDebuff, UnitIsCharmed = UnitDebuff, UnitIsCharmed; local UnitPower, UnitPowerMax, UnitPowerType = UnitPower, UnitPowerMax, UnitPowerType; local UnitHealth, UnitHealthMax = UnitHealth, UnitHealthMax; +local UnitIsAFK, UnitIsDND = UnitIsAFK, UnitIsDND; local UnitGetIncomingHeals, UnitGetTotalAbsorbs = UnitGetIncomingHeals, UnitGetTotalAbsorbs; local UnitThreatSituation, GetThreatStatusColor = UnitThreatSituation, GetThreatStatusColor; local UnitIsDeadOrGhost, UnitIsConnected = UnitIsDeadOrGhost, UnitIsConnected; @@ -34,8 +35,7 @@ local M = {}; OmaRFEvents = M; function M.RegisterEvents(frame) -- events are taken from FrameXML/CompactUnitFrame.lua - -- TODO raid marker support, - -- player flags support (/afk, /dnd) + -- TODO raid marker support local displayed = frame.unit ~= frame.displayed and frame.displayed or nil; frame:RegisterUnitEvent("UNIT_HEALTH", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_HEALTH_FREQUENT", frame.unit, displayed); @@ -51,6 +51,7 @@ function M.RegisterEvents(frame) frame:RegisterUnitEvent("UNIT_THREAT_SITUATION_UPDATE", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_CONNECTION", frame.unit, displayed); frame:RegisterUnitEvent("INCOMING_RESURRECT_CHANGED", frame.unit, displayed); + frame:RegisterUnitEvent("PLAYER_FLAGS_CHANGED", frame.unit, displayed); end local registerEvents = M.RegisterEvents; @@ -88,6 +89,12 @@ local function updateText(frame, unit) elseif not UnitIsConnected(unit) then frame.text:SetText("DC"); frame.text:Show(); + elseif UnitIsAFK(unit) then + frame.text:SetText("afk"); + frame.text:Show(); + elseif UnitIsDND(unit) and healthLost == 0 then + frame.text:SetText("dnd"); + frame.text:Show(); elseif healthLost > 0 then if healthLost > 1200000000 then -- 1.2B frame.text:SetFormattedText("-%.1fB", healthLost / 1000000000); @@ -356,6 +363,7 @@ local eventFuncs = { }; eventFuncs["UNIT_HEALTH_FREQUENT"] = eventFuncs["UNIT_HEALTH"]; eventFuncs["PARTY_MEMBER_DISABLE"] = eventFuncs["PARTY_MEMBER_ENABLE"]; +eventFuncs["PLAYER_FLAGS_CHANGED"] = eventFuncs["UNIT_CONNECTION"]; eventFuncs["READY_CHECK_CONFIRM"] = eventFuncs["READY_CHECK"]; eventFuncs["READY_CHECK_FINISHED"] = eventFuncs["READY_CHECK"]; eventFuncs["UNIT_ENTERED_VEHICLE"] = eventFuncs["UPDATE_ALL_BARS"]; diff --git a/OmaRF/OmaRF.toc b/OmaRF/OmaRF.toc index c577c0e..a8140c8 100644 --- a/OmaRF/OmaRF.toc +++ b/OmaRF/OmaRF.toc @@ -8,4 +8,3 @@ Settings.lua Indicators.lua Events.lua RaidFrame.lua -PlayerFrameHooks.lua diff --git a/OmaRF/PlayerFrameHooks.lua b/OmaRF/PlayerFrameHooks.lua deleted file mode 100644 index 8101306..0000000 --- a/OmaRF/PlayerFrameHooks.lua +++ /dev/null @@ -1,5 +0,0 @@ -hooksecurefunc("UnitFramePortrait_Update", function(self) - if self.unit == "player" then - SetPortraitToTexture(self.portrait, "Interface\\ICONS\\ClassIcon_Paladin"); - end -end); diff --git a/OmaRF/RaidFrame.lua b/OmaRF/RaidFrame.lua index 12ac13f..015ce88 100644 --- a/OmaRF/RaidFrame.lua +++ b/OmaRF/RaidFrame.lua @@ -372,6 +372,16 @@ local function hideBlizzardRaid() CompactRaidFrameContainer:HookScript("OnShow", hide); hooksecurefunc("CompactRaidFrameManager_UpdateOptionsFlowContainer", hideBlizzardRaidButton); hideBlizzardRaidButton(); + + -- hide focus frame + for _, frame in pairs({FocusFrame, FocusFrameToT}) do + frame:UnregisterAllEvents(); + frame.healthbar:UnregisterAllEvents(); + frame.manabar:UnregisterAllEvents(); + if frame.spellbar then frame.spellbar:UnregisterAllEvents() end + if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end + frame:Hide(); + end end CFrame:RegisterEvent("ADDON_LOADED");