Advertisement
Guest User

Event

a guest
Oct 22nd, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. local Event = {}
  2.  
  3. local function Disconnect(connection)
  4. local event = connection.event
  5. for i, v in ipairs(event) do
  6. if v == connection then
  7. table.remove(event, i)
  8. break
  9. end
  10. end
  11. end
  12.  
  13. local function Connect(event, f, ...)
  14. local connection = {event = event, f = f, Disconnect = Disconnect}
  15. table.insert(event, connection)
  16. return connection
  17. end
  18.  
  19. local function PreFire(event, ...)
  20. for i, v in ipairs(event) do
  21. v.f(...)
  22. end
  23. end
  24.  
  25. local function Fire(event, ...)
  26. event.bindable:Fire()
  27. for i, v in ipairs(event) do
  28. v.f(...)
  29. end
  30. end
  31.  
  32. local function Wait(event)
  33. event.bindable.Event:Wait()
  34. end
  35.  
  36. local function PreWait(event)
  37. event.bindable = Instance.new("BindableEvent");
  38. event.Wait = Wait
  39. event.Fire = Fire
  40. event:Wait()
  41. end
  42.  
  43. Event.new = function()
  44. local event =
  45. {
  46. Connect = Connect;
  47. Fire = PreFire;
  48. Wait = PreWait;
  49. }
  50. return event
  51. end
  52.  
  53. return Event
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement