2e5bc88 - Working override/vehicle/possess bars
[wowui.git] / OmaUF / UnitFrames.lua
1 -- UnitFrames.lua
2 local _;
3 local pairs = pairs;
4 local InCombatLockdown = InCombatLockdown;
5
6 local UnitFrames = CreateFrame("Frame", "OmaUnitFrames", UIParent);
7
8 local M = {};
9 OmaUnitFrames = M;
10
11 local function initialize()
12     UnitFrames:SetFrameStrata("LOW");
13     UnitFrames:SetPoint("CENTER");
14     UnitFrames:SetWidth(1);
15     UnitFrames:SetHeight(1);
16     local player = M.InitializePlayer(UnitFrames);
17     M.InitializePet(player);
18     local target = M.InitializeTarget(UnitFrames);
19     --M.InitializeToT(target); -- might not do this
20     M.InitializeBoss(UnitFrames);
21 end
22
23 local hidden = false;
24 local function hideBlizzardFrames()
25     if hidden then return end
26     hidden = true;
27
28     local frames = {PlayerFrame, TargetFrame, TargetFrameToT, PetFrame,
29         PlayerFrameAlternateManaBar, ComboFrame, PriestBarFrame, RuneFrame,
30         WarlockPowerFrame, MonkHarmonyBarFrame, PaladinPowerBarFrame,
31         MageArcaneChargesFrame, CastingBarFrame, PetCastingBarFrame};
32     for i = 1,MAX_BOSS_FRAMES do
33         table.insert(frames, _G["Boss"..i.."TargetFrame"]);
34         table.insert(frames, _G["Boss"..i.."TargetFrameHealthBar"]);
35         table.insert(frames, _G["Boss"..i.."TargetFrameManaBar"]);
36     end
37     for _, frame in pairs(frames) do
38         frame:UnregisterAllEvents();
39         if frame.healthbar then frame.healthbar:UnregisterAllEvents() end
40         if frame.manabar then frame.manabar:UnregisterAllEvents() end
41         if frame.spellbar then frame.spellbar:UnregisterAllEvents() end
42         if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end
43         frame:Hide();
44     end
45
46     -- from ShadowedUF, re-register vehicle events for default auras
47     PlayerFrame:RegisterEvent("PLAYER_ENTERING_WORLD");
48     PlayerFrame:RegisterEvent("UNIT_ENTERING_VEHICLE");
49     PlayerFrame:RegisterEvent("UNIT_ENTERED_VEHICLE");
50     PlayerFrame:RegisterEvent("UNIT_EXITING_VEHICLE");
51     PlayerFrame:RegisterEvent("UNIT_EXITED_VEHICLE");
52     PlayerFrame:SetMovable(true);
53     PlayerFrame:SetUserPlaced(true);
54     PlayerFrame:SetDontSavePosition(true);
55 end
56
57 -- untested, not playing arena, from ShadowedUF
58 local hiddenFrame = CreateFrame("Frame");
59 hiddenFrame:Hide();
60 local arenaHidden = false;
61 local function hideArenaFrames()
62     -- not run if /reload happens in combat, may cause problems?
63     if not arenaHidden and not InCombatLockdown() then
64         arenaHidden = true;
65         ArenaEnemyFrames:UnregisterAllEvents();
66         ArenaEnemyFrames:SetParent(hiddenFrame);
67         ArenaPrepFrames:UnregisterAllEvents();
68         ArenaPrepFrames:SetParent(hiddenFrame);
69         SetCVar("showArenaEnemyFrames", 0, "SHOW_ARENA_ENEMY_FRAMES_TEXT");
70     end
71 end
72
73 UnitFrames:RegisterEvent("PLAYER_LOGIN");
74 UnitFrames:RegisterEvent("ADDON_LOADED");
75 UnitFrames:SetScript("OnEvent", function(self, event, addon)
76     if event == "PLAYER_LOGIN" then
77         OmaUFLoadChar();
78         hideBlizzardFrames();
79         initialize();
80     elseif event == "ADDON_LOADED" and addon == "Blizzard_ArenaUI" then
81         hideArenaFrames();
82     end
83 end);