133 lines
3.2 KiB
Lua
133 lines
3.2 KiB
Lua
local parent, ns = ...
|
|
local oUF = ns.oUF
|
|
|
|
-- sourced from Blizzard_ArenaUI/Blizzard_ArenaUI.lua
|
|
local MAX_ARENA_ENEMIES = MAX_ARENA_ENEMIES or 5
|
|
|
|
-- sourced from FrameXML/TargetFrame.lua
|
|
local MAX_BOSS_FRAMES = MAX_BOSS_FRAMES or 5
|
|
|
|
-- sourced from FrameXML/PartyMemberFrame.lua
|
|
local MAX_PARTY_MEMBERS = MAX_PARTY_MEMBERS or 4
|
|
|
|
local hiddenParent = CreateFrame('Frame', nil, UIParent)
|
|
hiddenParent:SetAllPoints()
|
|
hiddenParent:Hide()
|
|
|
|
local function insecureOnShow(self)
|
|
self:Hide()
|
|
end
|
|
|
|
local function handleFrame(baseName, doNotReparent)
|
|
local frame
|
|
if(type(baseName) == 'string') then
|
|
frame = _G[baseName]
|
|
else
|
|
frame = baseName
|
|
end
|
|
|
|
if(frame) then
|
|
frame:UnregisterAllEvents()
|
|
frame:Hide()
|
|
|
|
if(not doNotReparent) then
|
|
frame:SetParent(hiddenParent)
|
|
end
|
|
|
|
local health = frame.healthBar or frame.healthbar
|
|
if(health) then
|
|
health:UnregisterAllEvents()
|
|
end
|
|
|
|
local power = frame.manabar
|
|
if(power) then
|
|
power:UnregisterAllEvents()
|
|
end
|
|
|
|
local spell = frame.castBar or frame.spellbar
|
|
if(spell) then
|
|
spell:UnregisterAllEvents()
|
|
end
|
|
|
|
local altpowerbar = frame.powerBarAlt
|
|
if(altpowerbar) then
|
|
altpowerbar:UnregisterAllEvents()
|
|
end
|
|
|
|
local buffFrame = frame.BuffFrame
|
|
if(buffFrame) then
|
|
buffFrame:UnregisterAllEvents()
|
|
end
|
|
end
|
|
end
|
|
|
|
function oUF:DisableBlizzard(unit)
|
|
if(not unit) then return end
|
|
|
|
if(unit == 'player') then
|
|
handleFrame(PlayerFrame)
|
|
|
|
-- For the damn vehicle support:
|
|
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')
|
|
|
|
-- User placed frames don't animate
|
|
PlayerFrame:SetUserPlaced(true)
|
|
PlayerFrame:SetDontSavePosition(true)
|
|
elseif(unit == 'pet') then
|
|
handleFrame(PetFrame)
|
|
elseif(unit == 'target') then
|
|
handleFrame(TargetFrame)
|
|
handleFrame(ComboFrame)
|
|
elseif(unit == 'focus') then
|
|
handleFrame(FocusFrame)
|
|
handleFrame(TargetofFocusFrame)
|
|
elseif(unit == 'targettarget') then
|
|
handleFrame(TargetFrameToT)
|
|
elseif(unit:match('boss%d?$')) then
|
|
local id = unit:match('boss(%d)')
|
|
if(id) then
|
|
handleFrame('Boss' .. id .. 'TargetFrame')
|
|
else
|
|
for i = 1, MAX_BOSS_FRAMES do
|
|
handleFrame(string.format('Boss%dTargetFrame', i))
|
|
end
|
|
end
|
|
elseif(unit:match('party%d?$')) then
|
|
local id = unit:match('party(%d)')
|
|
if(id) then
|
|
handleFrame('PartyMemberFrame' .. id)
|
|
else
|
|
for i = 1, MAX_PARTY_MEMBERS do
|
|
handleFrame(string.format('PartyMemberFrame%d', i))
|
|
end
|
|
end
|
|
elseif(unit:match('arena%d?$')) then
|
|
local id = unit:match('arena(%d)')
|
|
if(id) then
|
|
handleFrame('ArenaEnemyFrame' .. id)
|
|
else
|
|
for i = 1, MAX_ARENA_ENEMIES do
|
|
handleFrame(string.format('ArenaEnemyFrame%d', i))
|
|
end
|
|
end
|
|
|
|
-- Blizzard_ArenaUI should not be loaded
|
|
Arena_LoadUI = function() end
|
|
SetCVar('showArenaEnemyFrames', '0', 'SHOW_ARENA_ENEMY_FRAMES_TEXT')
|
|
elseif(unit:match('nameplate%d+$')) then
|
|
local frame = C_NamePlate.GetNamePlateForUnit(unit)
|
|
if(frame and frame.UnitFrame) then
|
|
if(not frame.UnitFrame.isHooked) then
|
|
frame.UnitFrame:HookScript('OnShow', insecureOnShow)
|
|
frame.UnitFrame.isHooked = true
|
|
end
|
|
|
|
handleFrame(frame.UnitFrame, true)
|
|
end
|
|
end
|
|
end
|