ElvUI/Modules/UnitFrames/Elements/PhaseIndicator.lua

54 lines
1.9 KiB
Lua
Raw Normal View History

2020-11-13 14:27:50 -05:00
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local UF = E:GetModule('UnitFrames')
function UF:PostUpdate_PhaseIcon(hidden, phaseReason)
if phaseReason == 3 then -- chromie, gold
self.Center:SetVertexColor(1, 0.9, 0.5)
elseif phaseReason == 2 then -- warmode, red
self.Center:SetVertexColor(1, 0.3, 0.3)
elseif phaseReason == 1 then -- sharding, green
self.Center:SetVertexColor(0.5, 1, 0.3)
else -- phasing, blue
self.Center:SetVertexColor(0.3, 0.5, 1)
end
self.Center:SetShown(not hidden)
end
function UF:Construct_PhaseIcon(frame)
local PhaseIndicator = frame.RaisedElementParent.TextureParent:CreateTexture(nil, 'OVERLAY', nil, 6)
PhaseIndicator:SetTexture(E.Media.Textures.PhaseBorder)
PhaseIndicator:Point('CENTER', frame.Health)
PhaseIndicator:Size(32)
local Center = frame.RaisedElementParent.TextureParent:CreateTexture(nil, 'OVERLAY', nil, 7)
Center:SetTexture(E.Media.Textures.PhaseCenter)
Center:Point('CENTER', frame.Health)
Center:Size(32)
Center:Hide()
PhaseIndicator.Center = Center
PhaseIndicator.PostUpdate = UF.PostUpdate_PhaseIcon
return PhaseIndicator
end
function UF:Configure_PhaseIcon(frame)
local PhaseIndicator = frame.PhaseIndicator
PhaseIndicator:ClearAllPoints()
PhaseIndicator:Point(frame.db.phaseIndicator.anchorPoint, frame.Health, frame.db.phaseIndicator.anchorPoint, frame.db.phaseIndicator.xOffset, frame.db.phaseIndicator.yOffset)
local size = 32 * (frame.db.phaseIndicator.scale or 1)
PhaseIndicator:Size(size)
PhaseIndicator.Center:Size(size)
PhaseIndicator.Center:ClearAllPoints()
PhaseIndicator.Center:SetAllPoints(PhaseIndicator)
if frame.db.phaseIndicator.enable and not frame:IsElementEnabled('PhaseIndicator') then
frame:EnableElement('PhaseIndicator')
elseif not frame.db.phaseIndicator.enable and frame:IsElementEnabled('PhaseIndicator') then
frame:DisableElement('PhaseIndicator')
PhaseIndicator.Center:Hide()
end
end