update events system
This commit is contained in:
parent
44fd5416a9
commit
1543a0ce4c
@ -17,16 +17,17 @@ events = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function events.on(event, func)
|
function events.on(event, func)
|
||||||
-- why an array? length is always = 1
|
events.handlers[event] = func
|
||||||
-- FIXME: temporary fixed
|
|
||||||
events.handlers[event] = {} -- events.handlers[event] or {}
|
|
||||||
table.insert(events.handlers[event], func)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function events.remove_by_prefix(prefix)
|
function events.remove_by_prefix(prefix)
|
||||||
for name, handlers in pairs(events.handlers) do
|
for name, handlers in pairs(events.handlers) do
|
||||||
if name:sub(1, #prefix) == prefix then
|
local actualname = name
|
||||||
events.handlers[name] = nil
|
if type(name) == 'table' then
|
||||||
|
actualname = name[1]
|
||||||
|
end
|
||||||
|
if actualname:sub(1, #prefix+1) == prefix..':' then
|
||||||
|
events.handlers[actualname] = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -38,9 +39,7 @@ end
|
|||||||
function events.emit(event, ...)
|
function events.emit(event, ...)
|
||||||
result = nil
|
result = nil
|
||||||
if events.handlers[event] then
|
if events.handlers[event] then
|
||||||
for _, func in ipairs(events.handlers[event]) do
|
result = result or events.handlers[event](...)
|
||||||
result = result or func(...)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user