update events system

This commit is contained in:
MihailRis 2024-10-29 21:34:40 +03:00
parent 44fd5416a9
commit 1543a0ce4c

View File

@ -17,16 +17,17 @@ events = {
}
function events.on(event, func)
-- why an array? length is always = 1
-- FIXME: temporary fixed
events.handlers[event] = {} -- events.handlers[event] or {}
table.insert(events.handlers[event], func)
events.handlers[event] = func
end
function events.remove_by_prefix(prefix)
for name, handlers in pairs(events.handlers) do
if name:sub(1, #prefix) == prefix then
events.handlers[name] = nil
local actualname = name
if type(name) == 'table' then
actualname = name[1]
end
if actualname:sub(1, #prefix+1) == prefix..':' then
events.handlers[actualname] = nil
end
end
end
@ -38,9 +39,7 @@ end
function events.emit(event, ...)
result = nil
if events.handlers[event] then
for _, func in ipairs(events.handlers[event]) do
result = result or func(...)
end
result = result or events.handlers[event](...)
end
return result
end