Files
RetroFE/Package/Environment/Common/lua/Event.lua
2015-12-11 16:17:23 -06:00

33 lines
666 B
Lua

local Event = {}
Event.__index = Event
function Event.new()
local instance = {
events = {}
}
setmetatable(instance, EventManager)
return instance
end
function Event:register(event, cbself, callback)
local listeners = self.events[event]
if listeners ~= nil then
listeners[#listeners + 1] = callback
else
self.events[event] = {{cb=callback, s=cbself}}
end
end
function Event:trigger(event, ...)
local listeners = self.events[event]
if listeners ~= nil then
for i = 1, #listeners do
listeners[i].cb(listeners[i].s, ...)
end
end
end
return Event