EventEmitter: add debug printing (disabled by default)

This commit is contained in:
Starbeamrainbowlabs 2022-09-25 15:03:16 +01:00
parent 9806828760
commit 9a4b4beb76
Signed by: sbrl
GPG key ID: 1BE5172E637709C2

View file

@ -1,4 +1,4 @@
local wea_c = worldeditadditions_core
--- Event manager object.
-- @class worldeditadditions_core.EventEmitter
local EventEmitter = {}
@ -11,6 +11,7 @@ EventEmitter.__name = "EventEmitter" -- A hack to allow identification in wea.in
function EventEmitter.new(tbl)
if not tbl then tbl = {} end
tbl.events = { }
tbl.debug = false
setmetatable(tbl, EventEmitter)
return tbl
end
@ -58,6 +59,8 @@ end
-- @param args table|any The argument(s) to pass to listener functions. It is strongly advised you pass a table here.
function EventEmitter.emit(this, event_name, args)
if this.events[event_name] == nil then return end
if this.debug then print("DEBUG:EventEmitter emit", event_name, "args", wea_c.inspect(args)) end
for index,next_func in ipairs(this.events[event_name]) do
next_func(args)
end