diff --git a/WeakAuras/Projects/NameplateTargets/export b/WeakAuras/Projects/NameplateTargets/export new file mode 100644 index 0000000..89113d1 --- /dev/null +++ b/WeakAuras/Projects/NameplateTargets/export @@ -0,0 +1 @@ +!9M1)VjoUs8)xqALALUMfA7UN0Q7(bAjDl7JLIWHR3790fWKyaFBWM1XPFzxD83(BgBNqGl8TBBFkvLehpJNz8hpZKzcBegessdjN7149ExesMhsIX)GrNQKpgsAD39DdjJLQyM6kA0xIvYfHKRs4F7Buv8YrbszIMdd90DtMKY0HDRhsEU09ur0mPQNKl0HKR97g43pNFxltKkyP62aNz3Zn))cZ)VeheiilL10YaMAGGRdVc4yKMlfPgjxtvA4gyMt4cE6m79CCM4DW9AfF6uMk1UobfdG3gZgNnzsWZlyHKB9707MbDG3BEKMPONdlWcwss74ulFtZgZEGj0eGk(tHKHx3KemKe0SpWSmCrjlsOpdmNiOZzoQmKalaJMONTIj9umdti9870XORIvIM2k8rYKS5cYcAedLEIIgZZsbtvDJLLpNIMIYwcsmi44GdT6rklska53PwcPGHmEoLlo8zxyBpS5duqt4tfR2VbPZOyiGa0)(SPUDqyQjsQbVbB1dJsOPPHJn29iCW5za6kFR0(2nhnL)n2Mdcdp2bwldYAyaznmGSggqwDV3z4blzIdIgCxVCtlZijr0eRX3cAXXS35hpf0zYxZOk2Yr3KLKSC09Z4azeLrbTaR4NbSapcooLTiNuckZDr8Le21S2nyZwmHp1AuMQ4XwY73cTggaamF4m5k0aqayyf6BGteGos63Sv7beWIYNdqXUVlF1YpnEjyK5WX7U)NVE7LFPlR5n4oNm6b44bcJ6(Z1Vabw4CcOQPm9YrsXYrDbSmGR1Gw60cu8UNhdWzCvMOGjaNROAQrUSh5Vbh1QdKR7773fpuPHxC3c9QDFRe2wyeqKwvuhMykY5lEFDuH1wmEjFjoxbKUn)SFVond8nMIyEj2cGPogRWy0BGMPe0KFlxnp)9g0uHhbzMoHJ7a3niOt7Ua7EKov2gm81pN1C2)Q1JXR7FlMNINZdypPhorQaOYWfd185SHUn7H6zkw6mzsCyxulsNrJLp(VZzXzn2WVy)2F82GDXx7tMfpklvlNJZzWIyeKM7GbSUs0HqKDNH0eEUsVLowecqLy5q3dJl54SycOxWHmXdEWJkg4U)xxo67)vzYUAdFV7XJBMOKWM72iF1w3dQD0ChnakGL503CNqHKgw3g0XW5OXFwgZW4dB4VfNqMl0H5vaO)(MdlapdVUZDe)wamhgzODObDBhmSzRwvnCF)pF3VTXlAoOVLJeWrqFC8b9AzaMv7TFJ4k5gGZod8G8)jrB5NMKjmyJtmg30FA5iJKc)IMl4hppVtx(PLJSx8jUjaOaaguRcbT2Yr6zmXkAYVa4lWad8PbW4lRVCuS8VpT8Rej401kggAQjY9avdLkKvBLwumr3d(pXt1PNG840TjwBED9Wa4WMYR5eWJXj19qzTWkbC5Eg9lnbWxQhjIk8nGPtQvPXUMZmcuXeXNU91gE7F)LRnO9HTUpuj2aStuGmNjeT(BHKss8AKuTbZTX8XbTBz2yqdn(GZm)PQ2mStE3BaluGBqahc)m1Z6R7KAVj9dlh9M0ABampDhgZn8x9FX1(pmsQrRoeaxEGVCAm4TANPndx7OWDwwDWOpNqyxjeXxyIXaWRXXdLxIvrU)veEJmQh(S3hz6IhUrAcOwSjUxUBDyuY6(99tt(vHITsp)PdN6cKhEZrqxHReRRTdMotQngclmLhb1luYPqEaPywqwhzOLJhv7i4bgO8wESZMPYoM1pAgvm1f2(ijfsE5XJHU)6hYdxskBFU1CX2En8s5MVbvBiyn8DLo1CZD3hSntYRWsoHcQ5(M9MBz7XYvwM2IZpJmUdpJcEsLbC2s4MY5quBp7aWlXaQ2dSmnE)jBjkHqQljKWh65cBTXq)sjMEwP3A)2jpiTBPwNS3Dgt(iwxioKehSrlOCv6jByPoD3PQCSr6(bXEhuSJJp41EcMPpUaz7eC62PWV42DugxO2PMiq1Sj)JH8xFnhPy6mLWDMO6ZahrmrJfcZWO2PFWLUrrCw3cF6)m90Qm9mQXg2TTTYqI0xJv2WuPI1fHnZ97yKKdYf1bfP3tuoi4pkZ2VhU9DX2PF0xZKx2Bsnhz6mV0P58sN(Z(tl6GYP8fyfFjsL61ifRxHuVEPsj7FqQAhvkC7645pSdOJl3PxlpohKEVZjDOFEV7H1cZ9jZRcjrZyrFPOUwL6SWo7hrvn3OIUmGfD8pn144bSThjj2sg(alWontv1SnJPYYt6QmjbltzCffB9Y3Tw5174FdiBtK49(pTaps)i95qsrnOBS9oe8nPGH1mJaIiQWmBvn5IPMk0F(fRAcG5PRC1JKMGgUn7BawxqSAKMk6VLwluvxi2s)gqvYww)gVVstLOWuzl3VTMW)EEnHBSExd0aLvuwBfS9mtRxK(H3(wSi1EC5Blks9Bn9eyxT7W2tnS((FDI6oYcYdZ9pDTc23JQqJ1v4M2C04qA4v3REi5rPk(EfDri5(I7(ZSunFYZR6ZZb0mHIVJExL7gWfr8c8WE7VqPgburlgk3xLslzi5nIsTQ8SgNNVNCa9LerF5DaX0moUWQbU2XXNkGpEWjgMcf6RusvQTE5v35Us9qJWOPOgN3jKT34nCIbv2AVxi2TQ3FVmm0DC5bWqE55OTm8)9 \ No newline at end of file diff --git a/WeakAuras/Projects/NameplateTargets/init.lua b/WeakAuras/Projects/NameplateTargets/init.lua new file mode 100644 index 0000000..86eb086 --- /dev/null +++ b/WeakAuras/Projects/NameplateTargets/init.lua @@ -0,0 +1 @@ +aura_env.stored = {} \ No newline at end of file diff --git a/WeakAuras/Projects/NameplateTargets/trigger.lua b/WeakAuras/Projects/NameplateTargets/trigger.lua new file mode 100644 index 0000000..ade06a3 --- /dev/null +++ b/WeakAuras/Projects/NameplateTargets/trigger.lua @@ -0,0 +1,79 @@ +-- WA_NAMEPLATE_CLOSED NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED NAME_PLATE_AURA_NAMES FRAME_UPDATE +function(states, event, unit, ...) + if event == "WA_NAMEPLATE_CLOSED" then + for i = 1, 40 do + local unit = "nameplate" .. i + if UnitExists(unit) then + C_Timer.After(0.1, function() WeakAuras.ScanEvents("NAME_PLATE_AURA_NAMES", unit) end) + end + end + end + + if event == "NAME_PLATE_UNIT_ADDED" and unit or event == "NAME_PLATE_AURA_NAMES" and unit then + local GUID = UnitGUID(unit) + if GUID then + print(string.format("%s: %s", event, unit)) + aura_env.stored[GUID] = unit + local unitTarget = unit .. "-target" + if UnitExists(unitTarget) then + local targetname = UnitName(unitTarget) + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + + states[GUID] = { + name = targetname, + GUID = GUID, + unit = unit, + frame = nameplate, + progressType = "static", + autoHide = true, + changed = true, + show = true, + } + end + end + elseif event == "NAME_PLATE_UNIT_REMOVED" and unit then + local GUID = UnitGUID(unit) + local state = states[GUID] + if state then + state.show = false + state.changed = true + end + if aura_env.stored[GUID] then aura_env.stored[GUID] = nil end + end + if event == "FRAME_UPDATE" then + local theTime = GetTime() + if not aura_env.last or aura_env.last < theTime - aura_env.config.throttle then + for GUID, unit in pairs(aura_env.stored) do + if GUID then + local state = states[GUID] + local target = unit .. "-target" + if UnitExists(target) then + if aura_env.config.self and UnitIsUnit("player", target) then return true end + local name = ("%s"):format(UnitName(target)) + if UnitIsPlayer(target) then name = ("%s"):format(WA_ClassColorName(target)) end + + if state then + state.name = name + state.changed = true + else + states[GUID] = { + name = name, + GUID = GUID, + unit = unit, + frame = C_NamePlate.GetNamePlateForUnit(unit), + progressType = "static", + autoHide = true, + changed = true, + show = true, + } + end + elseif state then + state.show = false + state.changed = true + end + end + end + end + end + return true +end