From: Splizard Date: Wed, 19 Dec 2012 21:24:54 +0000 (+1300) Subject: Allow falling nodes to pass through solid "buildable_to" nodes. X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=9b5bb5c7559953db40b52dead3c85e1a1245b4f1;p=zefram%2Fminetest%2Fminetest_engine.git Allow falling nodes to pass through solid "buildable_to" nodes. --- diff --git a/builtin/falling.lua b/builtin/falling.lua index d3af36f2..1c09f985 100644 --- a/builtin/falling.lua +++ b/builtin/falling.lua @@ -57,6 +57,10 @@ minetest.register_entity("__builtin:falling_node", { -- Note: walkable is in the node definition, not in item groups if minetest.registered_nodes[bcn.name] and minetest.registered_nodes[bcn.name].walkable then + if minetest.registered_nodes[bcn.name].buildable_to then + minetest.env:remove_node(bcp) + return + end local np = {x=bcp.x, y=bcp.y+1, z=bcp.z} -- Check what's here local n2 = minetest.env:get_node(np) @@ -80,6 +84,7 @@ minetest.register_entity("__builtin:falling_node", { -- Create node and remove entity minetest.env:add_node(np, {name=self.nodename}) self.object:remove() + nodeupdate(np) else -- Do nothing end @@ -144,7 +149,8 @@ function nodeupdate_single(p) n_bottom = minetest.env:get_node(p_bottom) -- Note: walkable is in the node definition, not in item groups if minetest.registered_nodes[n_bottom.name] and - not minetest.registered_nodes[n_bottom.name].walkable then + (not minetest.registered_nodes[n_bottom.name].walkable or + minetest.registered_nodes[n_bottom.name].buildable_to) then minetest.env:remove_node(p) spawn_falling_node(p, n.name) nodeupdate(p)