update events system
This commit is contained in:
parent
44fd5416a9
commit
1543a0ce4c
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user