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.

48 lines
1.7 KiB

local SLE, T, E, L, V, P, G = unpack(select(2, ...))
local SUF = SLE.UnitFrames
local UF = E.UnitFrames
-- GLOBALS: unpack, select, random, UnitGroupRolesAssigned, UnitIsConnected, pairs
function SUF:UpdateRoleIcon()
local lfdrole = self.GroupRoleIndicator
if not self.db then return end
local db = self.db.roleIcon
if (not db) or (db and not db.enable) then
lfdrole:Hide()
return
end
local role = UnitGroupRolesAssigned(self.unit)
if self.isForced and role == 'NONE' then
local rnd = random(1, 3)
role = rnd == 1 and 'TANK' or (rnd == 2 and 'HEALER' or (rnd == 3 and 'DAMAGER'))
end
if (self.isForced or UnitIsConnected(self.unit)) and ((role == 'DAMAGER' and db.damager) or (role == 'HEALER' and db.healer) or (role == 'TANK' and db.tank)) then
lfdrole:SetTexture(SLE.rolePaths[E.db.sle.unitframes.roleicons][role])
lfdrole:Show()
else
lfdrole:Hide()
end
end
function SUF:SetRoleIcons()
for _, header in pairs(UF.headers) do
-- local name = header.groupName
-- local db = UF.db['units'][name]
for i = 1, header:GetNumChildren() do
local group = select(i, header:GetChildren())
for j = 1, group:GetNumChildren() do
local unitbutton = select(j, group:GetChildren())
if unitbutton.GroupRoleIndicator and unitbutton.GroupRoleIndicator.Override and not unitbutton.GroupRoleIndicator.sleRoleSetup then
unitbutton.GroupRoleIndicator.Override = SUF.UpdateRoleIcon
unitbutton:UnregisterEvent('UNIT_CONNECTION')
unitbutton:RegisterEvent('UNIT_CONNECTION', SUF.UpdateRoleIcon)
unitbutton.GroupRoleIndicator.sleRoleSetup = true
end
end
end
end
UF:UpdateAllHeaders()
end