bb359ca - Update OmaGtfo spell sounds
[wowui.git] / OmaUF / UnitFrames.lua
1 -- UnitFrames.lua
2 local _;
3 local pairs = pairs;
4 local InCombatLockdown = InCombatLockdown;
5
6 local UnitFrames = CreateFrame("Frame", "OmaUnitFrame", 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         -- keep boss frame powerBarAlt
37     end
38     for _, frame in pairs(frames) do
39         frame:UnregisterAllEvents();
40         if frame.healthbar then frame.healthbar:UnregisterAllEvents() end
41         if frame.manabar then frame.manabar:UnregisterAllEvents() end
42         if frame.spellbar then frame.spellbar:UnregisterAllEvents() end
43         --if frame.powerBarAlt then frame.powerBarAlt:UnregisterAllEvents() end
44         frame:Hide();
45     end
46
47     -- from ShadowedUF, re-register vehicle events for default auras
48     PlayerFrame:RegisterEvent("PLAYER_ENTERING_WORLD");
49     PlayerFrame:RegisterEvent("UNIT_ENTERING_VEHICLE");
50     PlayerFrame:RegisterEvent("UNIT_ENTERED_VEHICLE");
51     PlayerFrame:RegisterEvent("UNIT_EXITING_VEHICLE");
52     PlayerFrame:RegisterEvent("UNIT_EXITED_VEHICLE");
53     PlayerFrame:SetMovable(true);
54     PlayerFrame:SetUserPlaced(true);
55     PlayerFrame:SetDontSavePosition(true);
56 end
57
58 -- untested, not playing arena, from ShadowedUF
59 local hiddenFrame = CreateFrame("Frame");
60 hiddenFrame:Hide();
61 local arenaHidden = false;
62 local function hideArenaFrames()
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 == "ADDON_LOADED" and addon == "Blizzard_ArenaUI" then
77         hideArenaFrames();
78     elseif event == "PLAYER_LOGIN" then
79         OmaUFLoadChar();
80         hideBlizzardFrames();
81         initialize();
82     end
83 end);