Browse Source

Dig upwards for papyrus and cactus

Casimir 10 years ago
parent
commit
9559f695ec
2 changed files with 20 additions and 1 deletions
  1. 13 0
      mods/default/functions.lua
  2. 7 1
      mods/default/nodes.lua

+ 13 - 0
mods/default/functions.lua

@@ -266,6 +266,19 @@ minetest.register_abm({
 	end,
 })
 
+--
+-- dig upwards
+--
+
+function default.dig_up(pos, node, digger)
+	if digger == nil then return end
+	local np = {x = pos.x, y = pos.y + 1, z = pos.z}
+	local nn = minetest.get_node(np)
+	if nn.name == node.name then
+		minetest.node_dig(np, nn, digger)
+	end
+end
+
 --
 -- Leafdecay
 --

+ 7 - 1
mods/default/nodes.lua

@@ -349,7 +349,10 @@ minetest.register_node("default:cactus", {
 	is_ground_content = true,
 	groups = {snappy=1,choppy=3,flammable=2},
 	sounds = default.node_sound_wood_defaults(),
-	on_place = minetest.rotate_node
+	on_place = minetest.rotate_node,
+	after_dig_node = function(pos, node, metadata, digger)
+		default.dig_up(pos, node, digger)
+	end,
 })
 
 minetest.register_node("default:papyrus", {
@@ -367,6 +370,9 @@ minetest.register_node("default:papyrus", {
 	},
 	groups = {snappy=3,flammable=2},
 	sounds = default.node_sound_leaves_defaults(),
+	after_dig_node = function(pos, node, metadata, digger)
+		default.dig_up(pos, node, digger)
+	end,
 })
 
 minetest.register_node("default:bookshelf", {