summaryrefslogtreecommitdiff
path: root/upgrades.lua
diff options
context:
space:
mode:
Diffstat (limited to 'upgrades.lua')
-rw-r--r--upgrades.lua57
1 files changed, 57 insertions, 0 deletions
diff --git a/upgrades.lua b/upgrades.lua
new file mode 100644
index 0000000..8f0c6fb
--- /dev/null
+++ b/upgrades.lua
@@ -0,0 +1,57 @@
+-- re-applies the "_digtron_formspec" property from all digtron node defs to the digtron node's metadata.
+minetest.register_lbm({
+ name = "digtron:generic_formspec_sanitizer",
+ nodenames = {"group:digtron"},
+ action = function(pos, node)
+ local node_def = minetest.registered_nodes[node.name]
+ local meta = minetest.get_meta(pos)
+ meta:set_string("formspec", node_def._digtron_formspec)
+ end
+})
+
+minetest.register_lbm({
+ name = "digtron:sand_digger_upgrade",
+ nodenames = {"digtron:sand_digger"},
+ action = function(pos, node)
+ local meta = minetest.get_meta(pos)
+ local offset = meta:get_string("offset")
+ local period = meta:get_string("period")
+ minetest.set_node(pos, {name = "digtron:soft_digger",
+ param2 = node.param2})
+ meta:set_string("offset", offset)
+ meta:set_string("period", period)
+ end
+})
+
+minetest.register_lbm({
+ name = "digtron:fuelstore_upgrade",
+ nodenames = {"digtron:fuelstore"},
+ action = function(pos, node)
+ local meta = minetest.get_meta(pos)
+ local inv = meta:get_inventory()
+ local list = inv:get_list("main")
+ inv:set_list("main", {})
+ inv:set_list("fuel", list)
+ end
+})
+
+minetest.register_lbm({
+ name = "digtron:autocontroller_lateral_upgrade",
+ nodenames = {"digtron:auto_controller"},
+ action = function(pos, node)
+ local meta = minetest.get_meta(pos)
+ local cycles = meta:get_int("offset")
+ meta:set_int("cycles", cycles)
+ meta:set_int("offset", 0)
+ meta:set_int("slope", 0)
+ end
+})
+
+minetest.register_lbm({
+ name = "digtron:builder_extrusion_upgrade",
+ nodenames = {"digtron:builder"},
+ action = function(pos, node)
+ local meta = minetest.get_meta(pos)
+ meta:set_int("extrusion", 1)
+ end
+}) \ No newline at end of file