Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local api = { LoadOrder = 100 }
- function api.Build()
- return function()
- local handler = { Events = {} }
- handler.__index = handler
- function handler:__call() local a = { os.pullEvent() } local e = table.remove(a, 1) if not self.Events[e] then return end for i,c in ipairs(self.Events[e]) do c(table.unpack(a)) end end
- function handler:emit(e,...) os.queueEvent(e,...) end
- function handler:disconnect(c) table.remove(self.Events[c.Event],c.Id) end
- function handler:connect(e,c) self.Events[e]=self.Events[e] or {} table.insert(self.Events[e],c) return {Event=e,Id=#self.Events[e]} end
- function handler:disconnectAll(e) if e then self.Events[e] = nil else self.Events = {} end end
- return setmetatable(handler, handler)
- end
- end
- return api
Add Comment
Please, Sign In to add comment