X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/fdbd89d788a6442f2fe57abb8f2321bd6c452889..3e6730c2c495d9016dde6cbb76c2bd6f86b05cbe:/OmaUF/UnitFrames.lua diff --git a/OmaUF/UnitFrames.lua b/OmaUF/UnitFrames.lua index 0a812d4..b0738ee 100644 --- a/OmaUF/UnitFrames.lua +++ b/OmaUF/UnitFrames.lua @@ -1,6 +1,7 @@ -- UnitFrames.lua local _; local pairs = pairs; +local InCombatLockdown = InCombatLockdown; local UnitFrames = CreateFrame("Frame", "OmaUnitFrames"); @@ -9,9 +10,10 @@ OmaUnitFrames = M; local function initialize() local player = M.InitializePlayer(UIParent); - --M.InitializePet(player); + M.InitializePet(player); local target = M.InitializeTarget(UIParent); - --M.InitializeToT(target); + --M.InitializeToT(target); -- might not do this + M.InitializeBoss(UIParent); -- TODO boss frames, (arena frames) end @@ -20,22 +22,31 @@ local function hideBlizzardFrames() if hidden then return end hidden = true; - for _, frame in pairs({PlayerFrame, TargetFrame, TargetFrameToT, PetFrame}) do + local frames = {PlayerFrame, TargetFrame, TargetFrameToT, PetFrame, + PlayerFrameAlternateManaBar, ComboFrame, PriestBarFrame, RuneFrame, + WarlockPowerFrame, MonkHarmonyBarFrame, PaladinPowerBarFrame, + MageArcaneChargesFrame}; + for i = 1,MAX_BOSS_FRAMES do + table.insert(frames, _G["Boss"..i.."TargetFrame"]); + table.insert(frames, _G["Boss"..i.."TargetFrameHealthBar"]); + table.insert(frames, _G["Boss"..i.."TargetFrameManaBar"]); + end + for _, frame in pairs(frames) do frame:UnregisterAllEvents(); - frame.healthbar:UnregisterAllEvents(); - frame.manabar:UnregisterAllEvents(); + if frame.healthbar then frame.healthbar:UnregisterAllEvents() end + if frame.manabar then frame.manabar:UnregisterAllEvents() end if frame.spellbar then frame.spellbar:UnregisterAllEvents() end if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end frame:Hide(); end -- TODO create frames for class powers, currently using Simple Holy Power - for _, frame in pairs({PlayerFrameAlternateManaBar, ComboFrame, - PriestBarFrame, RuneFrame, WarlockPowerFrame, MonkHarmonyBarFrame, - PaladinPowerBarFrame, MageArcaneChargesFrame}) do - frame:UnregisterAllEvents(); - frame:Hide(); - end + --for _, frame in pairs({PlayerFrameAlternateManaBar, ComboFrame, + -- PriestBarFrame, RuneFrame, WarlockPowerFrame, MonkHarmonyBarFrame, + -- PaladinPowerBarFrame, MageArcaneChargesFrame}) do + -- frame:UnregisterAllEvents(); + -- frame:Hide(); + --end -- from ShadowedUF, re-register vehicle events for default auras PlayerFrame:RegisterEvent("PLAYER_ENTERING_WORLD"); @@ -48,11 +59,30 @@ local function hideBlizzardFrames() PlayerFrame:SetDontSavePosition(true); end +-- untested, not playing arena, from ShadowedUF +local hiddenFrame = CreateFrame("Frame"); +hiddenFrame:Hide(); +local arenaHidden = false; +local function hideArenaFrames() + -- not run if /reload happens in combat, may cause problems? + if not arenaHidden and not InCombatLockdown() then + arenaHidden = true; + ArenaEnemyFrames:UnregisterAllEvents(); + ArenaEnemyFrames:SetParent(hiddenFrame); + ArenaPrepFrames:UnregisterAllEvents(); + ArenaPrepFrames:SetParent(hiddenFrame); + SetCVar("showArenaEnemyFrames", 0, "SHOW_ARENA_ENEMY_FRAMES_TEXT"); + end +end + UnitFrames:RegisterEvent("PLAYER_LOGIN"); -UnitFrames:SetScript("OnEvent", function(self, event) +UnitFrames:RegisterEvent("ADDON_LOADED"); +UnitFrames:SetScript("OnEvent", function(self, event, addon) if event == "PLAYER_LOGIN" then OmaUFLoadChar(); hideBlizzardFrames(); initialize(); + elseif event == "ADDON_LOADED" and addon == "Blizzard_ArenaUI" then + hideArenaFrames(); end end);