Files
WeirdUtils/src/outline/addon/Outline.lua
T

55 lines
1.9 KiB
Lua

-- Outline addon (embedded in DLL, loaded from memory)
-- Part of WeirdUtils - only loaded when outline module is compiled
OUTLINE_VERSION = 1
BINDING_HEADER_OUTLINE = "Outline"
local frame = CreateFrame("Frame")
frame:RegisterEvent("ADDON_LOADED")
frame:RegisterEvent("PLAYER_LOGIN")
frame:RegisterEvent("PLAYER_TARGET_CHANGED")
local syncElapsed = 0
frame:SetScript("OnEvent", function()
if event == "PLAYER_LOGIN" then
OutlineSyncTarget()
local on = OutlineCommand()
DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00Outline|r v" .. OUTLINE_VERSION .. " loaded (" .. (on and "enabled" or "disabled") .. ")")
elseif event == "PLAYER_TARGET_CHANGED" then
OutlineSyncTarget()
syncElapsed = 0
end
end)
-- AutoFix safety net: republish the current target from the safe Lua/main
-- thread at low frequency so a missed/early target event cannot disable Outline.
frame:SetScript("OnUpdate", function()
syncElapsed = syncElapsed + arg1
if syncElapsed >= 0.10 then
syncElapsed = 0
OutlineSyncTarget()
end
end)
SLASH_OUTLINE1 = "/outline"
SLASH_OUTLINE2 = "/ol"
SlashCmdList["OUTLINE"] = function(msg)
msg = string.lower(msg or "")
if msg == "" or msg == "status" then
local on = OutlineCommand()
DEFAULT_CHAT_FRAME:AddMessage("Outlines: " .. (on and "|cff00ff00ON|r" or "|cffff0000OFF|r"))
elseif msg == "on" or msg == "enable" then
OutlineCommand("on")
DEFAULT_CHAT_FRAME:AddMessage("Outlines |cff00ff00enabled|r")
elseif msg == "off" or msg == "disable" then
OutlineCommand("off")
DEFAULT_CHAT_FRAME:AddMessage("Outlines |cffff0000disabled|r")
else
DEFAULT_CHAT_FRAME:AddMessage("|cff00ff00Outline|r commands:")
DEFAULT_CHAT_FRAME:AddMessage(" /ol - Show status")
DEFAULT_CHAT_FRAME:AddMessage(" /ol on|off - Toggle outlines")
end
end