-- 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 if the trace variable is true. 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 to chat. To print to ChatFrame3, set to 3, etc. Adds a header "KTM: " to the message, unless 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 "" 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