initial commit
This commit is contained in:
53
Modules/UnitFrames/Elements/PhaseIndicator.lua
Normal file
53
Modules/UnitFrames/Elements/PhaseIndicator.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
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
|
||||
Reference in New Issue
Block a user