3e6730c - Add pet, boss and arena frames
[wowui.git] / OmaUF / UnitFrames.lua
index 0a812d4..b0738ee 100644 (file)
@@ -1,6 +1,7 @@
 -- UnitFrames.lua
 local _;
 local pairs = pairs;
 -- UnitFrames.lua
 local _;
 local pairs = pairs;
+local InCombatLockdown = InCombatLockdown;
 
 local UnitFrames = CreateFrame("Frame", "OmaUnitFrames");
 
 
 local UnitFrames = CreateFrame("Frame", "OmaUnitFrames");
 
@@ -9,9 +10,10 @@ OmaUnitFrames = M;
 
 local function initialize()
     local player = M.InitializePlayer(UIParent);
 
 local function initialize()
     local player = M.InitializePlayer(UIParent);
-    --M.InitializePet(player);
+    M.InitializePet(player);
     local target = M.InitializeTarget(UIParent);
     local target = M.InitializeTarget(UIParent);
-    --M.InitializeToT(target);
+    --M.InitializeToT(target); -- might not do this
+    M.InitializeBoss(UIParent);
     -- TODO boss frames, (arena frames)
 end
 
     -- TODO boss frames, (arena frames)
 end
 
@@ -20,22 +22,31 @@ local function hideBlizzardFrames()
     if hidden then return end
     hidden = true;
 
     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: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
         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");
 
     -- 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
 
     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: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();
     if event == "PLAYER_LOGIN" then
         OmaUFLoadChar();
         hideBlizzardFrames();
         initialize();
+    elseif event == "ADDON_LOADED" and addon == "Blizzard_ArenaUI" then
+        hideArenaFrames();
     end
 end);
     end
 end);