You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.0 KiB

5 years ago
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local UF = E:GetModule('UnitFrames')
local CreateFrame = CreateFrame
function UF:Construct_RaidRoleFrames(frame)
local anchor = CreateFrame('Frame', nil, frame.RaisedElementParent)
frame.LeaderIndicator = anchor:CreateTexture(nil, 'OVERLAY')
frame.AssistantIndicator = anchor:CreateTexture(nil, 'OVERLAY')
anchor:Size(24, 12)
frame.LeaderIndicator:Size(12)
frame.AssistantIndicator:Size(12)
frame.LeaderIndicator.PostUpdate = UF.RaidRoleUpdate
frame.AssistantIndicator.PostUpdate = UF.RaidRoleUpdate
return anchor
end
function UF:Configure_RaidRoleIcons(frame)
local raidRoleFrameAnchor = frame.RaidRoleFramesAnchor
if frame.db.raidRoleIcons.enable then
raidRoleFrameAnchor:Show()
if not frame:IsElementEnabled('LeaderIndicator') then
frame:EnableElement('LeaderIndicator')
frame:EnableElement('AssistantIndicator')
end
raidRoleFrameAnchor:ClearAllPoints()
raidRoleFrameAnchor:Point(frame.db.raidRoleIcons.position, frame, frame.db.raidRoleIcons.position, frame.db.raidRoleIcons.xOffset, frame.db.raidRoleIcons.yOffset)
elseif frame:IsElementEnabled('LeaderIndicator') then
raidRoleFrameAnchor:Hide()
frame:DisableElement('LeaderIndicator')
frame:DisableElement('AssistantIndicator')
end
end
function UF:RaidRoleUpdate()
local anchor = self:GetParent()
local frame = anchor:GetParent():GetParent()
local leader = frame.LeaderIndicator
local assistant = frame.AssistantIndicator
if not leader or not assistant then return end
local db = frame.db
local isLeader = leader:IsShown()
local isAssist = assistant:IsShown()
leader:ClearAllPoints()
assistant:ClearAllPoints()
if db and db.raidRoleIcons then
if isLeader then
leader:Point(db.raidRoleIcons.position, anchor, db.raidRoleIcons.position, db.raidRoleIcons.xOffset, db.raidRoleIcons.yOffset)
elseif isAssist then
assistant:Point(db.raidRoleIcons.position, anchor, db.raidRoleIcons.position, db.raidRoleIcons.xOffset, db.raidRoleIcons.yOffset)
end
end
end