From c4d4e229f7d63959508e4505099a7fca5ca87534 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sun, 9 Nov 2014 19:17:41 +0000 Subject: First Commit by TenPlus1 --- papyrus.lua | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 papyrus.lua (limited to 'papyrus.lua') diff --git a/papyrus.lua b/papyrus.lua new file mode 100644 index 0000000..e17dee2 --- /dev/null +++ b/papyrus.lua @@ -0,0 +1,42 @@ +-- Override default Papyrus to make it walkable +minetest.override_item("default:papyrus", {walkable=true, sunlight_propagates=true}) + + +-- Have Papyrus grow up to 4 high and Bamboo grow up to 5 in height (shared abm) +minetest.register_abm({ + nodenames = {"default:papyrus", "ethereal:bamboo"}, + neighbors = {"group:soil"}, + interval = 50, + chance = 20, + action = function(pos, node) + + local type = minetest.get_node(pos).name + local high = 4 + + pos.y = pos.y-1 + local name = minetest.get_node(pos).name + + if minetest.get_item_group(name, "soil") < 1 or minetest.find_node_near(pos, 3, {"group:water"}) == nil then + return + end + + if type == "ethereal:bamboo" then + high = 5 + end + + pos.y = pos.y+1 + local height = 0 + + while minetest.get_node(pos).name == type and height < high do + height = height+1 + pos.y = pos.y+1 + end + + if height < high then + if minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name=type}) + end + end + + end, +}) -- cgit v1.2.3