-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathevent.lua
More file actions
36 lines (31 loc) · 690 Bytes
/
event.lua
File metadata and controls
36 lines (31 loc) · 690 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
-- event.lua
local M = {}
local manager = {
events = {}
}
M.notify = function(event, data)
if not manager.events[event] then return end
for _,callback in ipairs(manager.events[event]) do
callback(data)
end
end
M.subscribe = function(event, callback)
if not manager.events[event] then
manager.events[event] = {}
end
table.insert(manager.events[event], callback)
end
M.unsubscribe = function(event, callback)
if manager.events[event] then
local del = -1
for i,c in ipairs(manager.events[event]) do
if c == callback then
del = i
end
end
if del ~= -1 then
table.remove(manager.events[event],del)
end
end
end
return M