summaryrefslogtreecommitdiff
path: root/mesecons/util.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mesecons/util.lua')
-rw-r--r--mesecons/util.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/mesecons/util.lua b/mesecons/util.lua
index 91d435a..e49e82c 100644
--- a/mesecons/util.lua
+++ b/mesecons/util.lua
@@ -193,3 +193,20 @@ function mesecon:cmpAny(t1, t2)
return true
end
+
+-- does not overwrite values
+mesecon.mergetable = function(source, dest)
+ for k, v in pairs(source) do
+ dest[k] = dest[k] or v
+ end
+end
+
+mesecon.register_node = function(name, spec_common, spec_off, spec_on)
+ spec_common.drop = spec_common.drop or name .. "_off"
+
+ mesecon.mergetable(spec_common, spec_on);
+ mesecon.mergetable(spec_common, spec_off);
+
+ minetest.register_node(name .. "_on", spec_on)
+ minetest.register_node(name .. "_off", spec_off)
+end