-- UnitFrames.lua local _; local pairs = pairs; local InCombatLockdown = InCombatLockdown; local CTimerAfter = C_Timer.After; local updateAuraTooltips = OmaUFAuras.UpdateAuraTooltips; local UnitFrames = CreateFrame("Frame", "OmaUnitFrame", UIParent); local M = {}; OmaUnitFrames = M; local function initialize() UnitFrames:SetFrameStrata("LOW"); UnitFrames:SetPoint("CENTER"); UnitFrames:SetWidth(1); UnitFrames:SetHeight(1); local player = M.InitializePlayer(UnitFrames); M.InitializePet(player); local target = M.InitializeTarget(UnitFrames); --M.InitializeToT(target); -- might not do this M.InitializeBoss(UnitFrames); end local hidden = false; local function hideBlizzardFrames() if hidden then return end hidden = true; local frames = {PlayerFrame, TargetFrame, TargetFrameToT, PetFrame, PlayerFrameAlternateManaBar, ComboFrame, PriestBarFrame, RuneFrame, WarlockPowerFrame, MonkHarmonyBarFrame, PaladinPowerBarFrame, MageArcaneChargesFrame, CastingBarFrame, PetCastingBarFrame}; 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"]); -- keep boss frame powerBarAlt end for _, frame in pairs(frames) do frame: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 -- from ShadowedUF, re-register vehicle events for default auras PlayerFrame:RegisterEvent("PLAYER_ENTERING_WORLD"); PlayerFrame:RegisterEvent("UNIT_ENTERING_VEHICLE"); PlayerFrame:RegisterEvent("UNIT_ENTERED_VEHICLE"); PlayerFrame:RegisterEvent("UNIT_EXITING_VEHICLE"); PlayerFrame:RegisterEvent("UNIT_EXITED_VEHICLE"); PlayerFrame:SetMovable(true); PlayerFrame:SetUserPlaced(true); 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 local function updateTooltipFuncs() -- let MoveAnything hook these to anchor tooltip elsewhere M.UpdatePlayerTooltips(); M.UpdatePetTooltips(); M.UpdateTargetTooltips(); M.UpdateBossTooltips(); updateAuraTooltips(); end UnitFrames:RegisterEvent("PLAYER_LOGIN"); UnitFrames:RegisterEvent("PLAYER_ENTERING_WORLD"); UnitFrames:RegisterEvent("ADDON_LOADED"); UnitFrames:SetScript("OnEvent", function(self, event, addon) if event == "PLAYER_ENTERING_WORLD" then CTimerAfter(0.01, updateTooltipFuncs); elseif event == "ADDON_LOADED" and addon == "Blizzard_ArenaUI" then hideArenaFrames(); elseif event == "PLAYER_LOGIN" then OmaUFLoadChar(); hideBlizzardFrames(); initialize(); end end);