ElvUI/Modules/Blizzard/Blizzard.lua

121 lines
4.1 KiB
Lua

local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local B = E:GetModule('Blizzard')
local Skins = E:GetModule('Skins')
local TT = E:GetModule('Tooltip')
local _G = _G
local CreateFrame = CreateFrame
local GetQuestLogRewardXP = GetQuestLogRewardXP
local GetRewardXP = GetRewardXP
local IsAddOnLoaded = IsAddOnLoaded
local UnitXP = UnitXP
local UnitXPMax = UnitXPMax
local hooksecurefunc = hooksecurefunc
local C_QuestLog_ShouldShowQuestRewards = C_QuestLog.ShouldShowQuestRewards
local C_QuestLog_GetSelectedQuest = C_QuestLog.GetSelectedQuest
--This changes the growth direction of the toast frame depending on position of the mover
local function PostBNToastMove(mover)
local x, y = mover:GetCenter();
local screenHeight = E.UIParent:GetTop();
local screenWidth = E.UIParent:GetRight()
local anchorPoint
if y > (screenHeight / 2) then
anchorPoint = (x > (screenWidth/2)) and 'TOPRIGHT' or 'TOPLEFT'
else
anchorPoint = (x > (screenWidth/2)) and 'BOTTOMRIGHT' or 'BOTTOMLEFT'
end
mover.anchorPoint = anchorPoint
_G.BNToastFrame:ClearAllPoints()
_G.BNToastFrame:Point(anchorPoint, mover)
end
function B:Initialize()
B.Initialized = true
B:EnhanceColorPicker()
B:KillBlizzard()
B:DisableHelpTip()
B:DisableNPE()
B:AlertMovers()
B:PositionCaptureBar()
B:PositionDurabilityFrame()
B:PositionGMFrames()
B:SkinBlizzTimers()
B:PositionVehicleFrame()
B:PositionTalkingHead()
B:Handle_LevelUpDisplay_BossBanner()
B:Handle_UIWidgets()
B:GarrisonDropDown()
if not IsAddOnLoaded('DugisGuideViewerZ') then
B:MoveObjectiveFrame()
end
if not IsAddOnLoaded('SimplePowerBar') then
B:PositionAltPowerBar()
B:SkinAltPowerBar()
end
E:CreateMover(_G.LossOfControlFrame, 'LossControlMover', L["Loss Control Icon"])
-- Battle.Net Frame
_G.BNToastFrame:Point('TOPRIGHT', _G.MMHolder or _G.Minimap, 'BOTTOMRIGHT', 0, -10)
E:CreateMover(_G.BNToastFrame, 'BNETMover', L["BNet Frame"], nil, nil, PostBNToastMove)
_G.BNToastFrame.mover:Size(_G.BNToastFrame:GetSize())
TT:SecureHook(_G.BNToastFrame, 'SetPoint', 'RepositionBNET')
-- Quick Join Bug
CreateFrame('Frame'):SetScript('OnUpdate', function()
if _G.LFRBrowseFrame.timeToClear then
_G.LFRBrowseFrame.timeToClear = nil
end
end)
--Add (+X%) to quest rewards experience text
hooksecurefunc('QuestInfo_Display', function()
local unitXP, unitXPMax = UnitXP('player'), UnitXPMax('player')
if _G.QuestInfoFrame.questLog then
local selectedQuest = C_QuestLog_GetSelectedQuest()
if C_QuestLog_ShouldShowQuestRewards(selectedQuest) then
local xp = GetQuestLogRewardXP()
if xp and xp > 0 then
local text = _G.MapQuestInfoRewardsFrame.XPFrame.Name:GetText()
if text then _G.MapQuestInfoRewardsFrame.XPFrame.Name:SetFormattedText('%s (|cff4beb2c+%.2f%%|r)', text, (((unitXP + xp) / unitXPMax) - (unitXP / unitXPMax))*100) end
end
end
else
local xp = GetRewardXP()
if xp and xp > 0 then
local text = _G.QuestInfoXPFrame.ValueText:GetText()
if text then _G.QuestInfoXPFrame.ValueText:SetFormattedText('%s (|cff4beb2c+%.2f%%|r)', text, (((unitXP + xp) / unitXPMax) - (unitXP / unitXPMax))*100) end
end
end
end)
-- MicroButton Talent Alert
local TalentMicroButtonAlert = _G.TalentMicroButtonAlert
if TalentMicroButtonAlert then -- why do we need to check this?
if E.global.general.showMissingTalentAlert then
TalentMicroButtonAlert:ClearAllPoints()
TalentMicroButtonAlert:Point('CENTER', E.UIParent, 'TOP', 0, -75)
TalentMicroButtonAlert:StripTextures()
TalentMicroButtonAlert.Arrow:Hide()
TalentMicroButtonAlert.Text:FontTemplate()
TalentMicroButtonAlert:CreateBackdrop('Transparent')
Skins:HandleCloseButton(TalentMicroButtonAlert.CloseButton)
TalentMicroButtonAlert.tex = TalentMicroButtonAlert:CreateTexture(nil, 'OVERLAY')
TalentMicroButtonAlert.tex:Point('RIGHT', -10, 0)
TalentMicroButtonAlert.tex:SetTexture([[Interface\DialogFrame\UI-Dialog-Icon-AlertNew]])
TalentMicroButtonAlert.tex:Size(32, 32)
else
TalentMicroButtonAlert:Kill() -- Kill it, because then the blizz default will show
end
end
end
E:RegisterModule(B:GetName())