127 lines
5.4 KiB
Lua
127 lines
5.4 KiB
Lua
--COMBAT_LOG_EVENT_UNFILTERED ADD_BUFF REMOVE_BUFF
|
|
--https://pastebin.com/4xyHRftN
|
|
function(e, ...)
|
|
if e == "COMBAT_LOG_EVENT_UNFILTERED" then
|
|
local se = select(2, ...)
|
|
if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_REMOVED" then
|
|
aura_env.scanBuffs()
|
|
end
|
|
elseif e == "ADD_BUFF" then
|
|
local msg = select(1, ...)
|
|
local arg = select(2, ...)
|
|
if msg then
|
|
if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] then
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] = {["active"] = false}
|
|
if arg then
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg].group = arg
|
|
if not WeakAurasSaved.CustomTrash.BuffButtons.Groups[arg] then WeakAurasSaved.CustomTrash.BuffButtons.Groups[arg] = {["active"] = 0, ["shown"] = true} end
|
|
end
|
|
print(msg, "added")
|
|
else
|
|
print(msg, "already exists")
|
|
end
|
|
end
|
|
aura_env.scanBuffs()
|
|
elseif e == "REMOVE_BUFF" then
|
|
local msg = select(1, ...)
|
|
if msg and WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] then
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] = nil
|
|
print(msg, "removed")
|
|
else
|
|
print(msg, WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg])
|
|
print("Cannot remove", msg)
|
|
end
|
|
aura_env.scanBuffs()
|
|
end
|
|
end
|
|
|
|
--INIT
|
|
if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end
|
|
if not WeakAurasSaved.CustomTrash.BuffButtons then WeakAurasSaved.CustomTrash.BuffButtons = {} end
|
|
if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs then WeakAurasSaved.CustomTrash.BuffButtons.Buffs = {} end
|
|
if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons then WeakAurasSaved.CustomTrash.BuffButtons.Buttons = {} end
|
|
if not WeakAurasSaved.CustomTrash.BuffButtons.Groups then WeakAurasSaved.CustomTrash.BuffButtons.Groups = {} end
|
|
aura_env.buttons = 0
|
|
|
|
aura_env.scanBuffs = function()
|
|
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do
|
|
v.active = false
|
|
end
|
|
for i = 1, 40 do
|
|
local name = UnitBuff("player", i)
|
|
print(name)
|
|
if WeakAurasSaved.CustomTrash.BuffButtons.Buffs[name] then
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buffs[name].active = true
|
|
end
|
|
if not name then break end
|
|
end
|
|
aura_env.refreshButtons()
|
|
end
|
|
|
|
aura_env.resortButtons = function()
|
|
aura_env.buttons = 0
|
|
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buttons) do
|
|
if v:IsShown() == true then
|
|
if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs[k] then
|
|
v:Hide()
|
|
else
|
|
v:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.buttons * aura_env.config.size, 0)
|
|
aura_env.buttons = aura_env.buttons + 1
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
aura_env.refreshButtons = function()
|
|
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do
|
|
if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k] or not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k][0] then
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate")
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetAttribute("type", "macro")
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:RegisterForClicks("LeftButtonDown")
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Show()
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.buttons * aura_env.config.size, 0)
|
|
end
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetAttribute("macrotext", format("/use %s", k))
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetSize(aura_env.config.size, aura_env.config.size)
|
|
end
|
|
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do
|
|
if v.active == false then
|
|
local texture = GetItemIcon(k) or GetSpellTexture(k)
|
|
if not GetSpellTexture(k) then
|
|
local count = GetItemCount(k)
|
|
if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text then WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text = WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:CreateFontString("ItemCount", "ARTWORK") end
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetFont("Fonts\\FRIZQT__.TTF", aura_env.config.size / 2, "OUTLINE, MONOCHROME")
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetPoint("CENTER", WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k], "CENTER")
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetText(count)
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:Show()
|
|
end
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetNormalTexture(texture)
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Show()
|
|
ActionButton_ShowOverlayGlow(WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k])
|
|
else
|
|
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Hide()
|
|
end
|
|
end
|
|
aura_env.resortButtons()
|
|
end
|
|
|
|
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buttons) do
|
|
if k[0] then
|
|
print(k,v)
|
|
v:SetSize(aura_env.config.size, aura_env.config.size)
|
|
ActionButton_HideOverlayGlow(k)
|
|
end
|
|
end
|
|
aura_env.scanBuffs()
|
|
|
|
|
|
--INIT
|
|
local xsize, ysize = aura_env.region:GetSize()
|
|
if not aura_env.button then aura_env.button = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate") end
|
|
if aura_env.button then
|
|
aura_env.button:SetPoint("CENTER", aura_env.region, "CENTER")
|
|
aura_env.button:SetSize(xsize, ysize)
|
|
aura_env.button:SetAttribute("type", "macro")
|
|
aura_env.button:RegisterForClicks("LeftButtonDown")
|
|
aura_env.button:SetAttribute("macrotext", format("/use %s", aura_env.id))
|
|
end |