summaryrefslogtreecommitdiffhomepage
path: root/not/Trigger.lua
diff options
context:
space:
mode:
Diffstat (limited to 'not/Trigger.lua')
-rw-r--r--not/Trigger.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/not/Trigger.lua b/not/Trigger.lua
new file mode 100644
index 0000000..c6ef7c7
--- /dev/null
+++ b/not/Trigger.lua
@@ -0,0 +1,18 @@
+Trigger = require "not.Object":extends()
+
+function Trigger:new ()
+ self.calls = {}
+end
+
+function Trigger:register (func, ...)
+ local call = {func = func, params = {...}}
+ table.insert(self.calls, call)
+end
+
+function Trigger:emit ()
+ for _,call in pairs(self.calls) do
+ call.func(unpack(call.params))
+ end
+end
+
+return Trigger