mirror of
https://github.com/FunKey-Project/RetroFE.git
synced 2026-04-02 02:05:55 +02:00
33 lines
666 B
Lua
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
|