Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Event = {}
- local function Disconnect(connection)
- local event = connection.event
- for i, v in ipairs(event) do
- if v == connection then
- table.remove(event, i)
- break
- end
- end
- end
- local function Connect(event, f, ...)
- local connection = {event = event, f = f, Disconnect = Disconnect}
- table.insert(event, connection)
- return connection
- end
- local function PreFire(event, ...)
- for i, v in ipairs(event) do
- v.f(...)
- end
- end
- local function Fire(event, ...)
- event.bindable:Fire()
- for i, v in ipairs(event) do
- v.f(...)
- end
- end
- local function Wait(event)
- event.bindable.Event:Wait()
- end
- local function PreWait(event)
- event.bindable = Instance.new("BindableEvent");
- event.Wait = Wait
- event.Fire = Fire
- event:Wait()
- end
- Event.new = function()
- local event =
- {
- Connect = Connect;
- Fire = PreFire;
- Wait = PreWait;
- }
- return event
- end
- return Event
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement