summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorheav-4 <heavpoot@gmail.com>2022-02-13 01:58:47 +0000
committerheav-4 <heavpoot@gmail.com>2022-02-13 01:58:47 +0000
commitc1a6df8b5ba5b5e472f0a6895180c726f271730c (patch)
tree5b13ef4cc5edd5135266ec37aff8b455f9086126
parent46c55e261e66a89b32fecbfacb86fc24c033c7dc (diff)
parent58770608d21aa913efe16dd24747c55cafd1858a (diff)
Merge branch 'master' of citrons.xyz:vzxv
-rw-r--r--mods/vzxv/event.lua33
-rw-r--r--mods/vzxv/utils.lua2
2 files changed, 35 insertions, 0 deletions
diff --git a/mods/vzxv/event.lua b/mods/vzxv/event.lua
new file mode 100644
index 0000000..a7a0b7c
--- /dev/null
+++ b/mods/vzxv/event.lua
@@ -0,0 +1,33 @@
+
+vzxv.event = {}
+
+function vzxv.event.create()
+ local e = {}
+ setmetatable(e, vzxv.event)
+ return e
+end
+
+function vzxv.event:register(func)
+ self[func] = true
+end
+
+function vzxv.event:unregister(func)
+ self[func] = nil
+end
+
+function vzxv.event:trigger(...)
+ local v
+ for f in pairs(self) do
+ v = {f(...)}
+ end
+ return table.unpack(v)
+end
+
+-- iterate through all of the event handlers' results
+function vzxv.event:trigger_each(...)
+ local p = pairs(self)
+ return function()
+ local f = p()
+ if f then return f(...) end
+ end
+end
diff --git a/mods/vzxv/utils.lua b/mods/vzxv/utils.lua
index c9a376e..9067afe 100644
--- a/mods/vzxv/utils.lua
+++ b/mods/vzxv/utils.lua
@@ -1,4 +1,6 @@
+vzxv.include "event.lua"
+
function vzxv.mundane_block(name,visualname,tiles,settings)
settings = settings or {}
settings.description = visualname