vanilla-wow-addons – Rev 1
?pathlinks?

-- Add the module to the tree
-- table setup
local mod = thismod
local me = { }
mod.out = me
me.trace =
{
-- Top two are special. "traceall" true will make all traces print, regardless of their state.
-- "badtracekey" true will print an error when a tracecall is made with an undefined key
["traceall"] = false,
["badtracekey"] = true,
["localnooverride"] = false,
["localinvalidkey"] = true,
}
--[[
mod.out.printtrace(condition, message)
Prints out <message> if the trace variable <condition> is true. <condition> must be a key in me.trace.
]]
me.printtrace = function(condition, message)
-- 1) Check the trace key exists
if me.trace[condition] == nil then
-- That trace key does not exist
if me.trace.badtracekey == true then
me.print(string.format("The trace key |cffff3333%s|r is not defined. The message was: %s", condition, message))
end
return
end
-- 2) To print or not?
if (me.trace.traceall == true) or (me.trace[condition] == true) then
me.print(string.format("|cff6666ffTrace |r%s", message))
end
end
--[[
mod.out.print(message, chatframeindex, noheader)
Prints out <message> to chat.
To print to ChatFrame3, set <chatframeindex> to 3, etc.
Adds a header "KTM: " to the message, unless <noheader> is non-nil.
]]
me.print = function(message, chatframeindex, noheader)
-- Get a Frame to write to
local chatframe
if chatframeindex == nil then
chatframe = DEFAULT_CHAT_FRAME
else
chatframe = getglobal("ChatFrame" .. chatframeindex)
if chatframe == nil then
chatframe = DEFAULT_CHAT_FRAME
end
end
-- touch up message
message = message or "<nil>"
if noheader == nil then
message = mod.string.get("print", "core", "header") .. message
end
-- write
chatframe:AddMessage(message)
end
--[[
mod.out.booltostring(boolean)
Converts a Boolean value (true or false) to a string representation.
true -> "true", false -> "false", nil -> "nil"
]]
me.booltostring = function(boolean)
if boolean == true then
return "true"
elseif boolean == false then
return "false"
else
return "nil"
end
end
--[[
mod.out.announce(message)
Sends a chat message to Raid if possible, or Party if possible, or finally Say.
]]
me.announce = function(message)
local channel = "SAY"
if GetNumRaidMembers() > 0 then
channel = "RAID"
elseif GetNumPartyMembers() > 0 then
channel = "PARTY"
end
SendChatMessage(message, channel)
end