40 lines
1.2 KiB
Lua
40 lines
1.2 KiB
Lua
-- NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED FRAME_UPDATE
|
|
function(states, event, unit, ...)
|
|
if event == "NAME_PLATE_UNIT_ADDED" and unit or event == "NAME_PLATE_UNIT_REMOVED" and unit then
|
|
if UnitExists(unit) then
|
|
local isPvp = UnitIsPVP(unit)
|
|
local nameplate = C_NamePlate.GetNamePlateForUnit(unit)
|
|
|
|
states[unit] = states[unit] or {}
|
|
states[unit].unit = unit
|
|
states[unit].frame = nameplate
|
|
states[unit].changed = true
|
|
states[unit].show = isPvp
|
|
end
|
|
elseif event == "NAME_PLATE_UNIT_REMOVED" and unit then
|
|
states[unit] = states[unit] or {}
|
|
states[unit].unit = unit
|
|
states[unit].show = false
|
|
states[unit].changed = true
|
|
elseif event == "FRAME_UPDATE" then
|
|
local theTime = GetTime()
|
|
if not aura_env.last or aura_env.last < theTime - 0.2 then
|
|
aura_env.last = theTime
|
|
for i = 1, 40 do
|
|
local unit = "nameplate" .. i
|
|
if UnitExists(unit) then
|
|
local isPvp = UnitIsPVP(unit)
|
|
local nameplate = C_NamePlate.GetNamePlateForUnit(unit)
|
|
states[unit] = states[unit] or {}
|
|
states[unit].unit = unit
|
|
states[unit].show = isPvp
|
|
states[unit].changed = true
|
|
states[unit].frame = nameplate
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
return true
|
|
end
|