Skip to content
{{ message }}

# minetest / minetest

Only enqueue falling nodes if they really want to fall

• Loading branch information
PilzAdam committed Apr 5, 2013
1 parent 1586cda commit 97f0bb03423b6d2e22058166b677e568c53d7567
Showing with 9 additions and 8 deletions.
1. +9 −8 builtin/falling.lua
 @@ -142,7 +142,7 @@ end -- Some common functions -- function nodeupdate_single(p) function nodeupdate_single(p, delay) n = minetest.env:get_node(p) if minetest.get_node_group(n.name, "falling_node") ~= 0 then p_bottom = {x=p.x, y=p.y-1, z=p.z} @@ -151,9 +151,13 @@ function nodeupdate_single(p) if minetest.registered_nodes[n_bottom.name] and (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) if delay then minetest.after(0.1, nodeupdate_single, {x=p.x, y=p.y, z=p.z}, false) else minetest.env:remove_node(p) spawn_falling_node(p, n.name) nodeupdate(p) end end end @@ -170,14 +174,11 @@ function nodeupdate(p) p.x = math.floor(p.x+0.5) p.y = math.floor(p.y+0.5) p.z = math.floor(p.z+0.5) nodeupdate_single(p) for x = -1,1 do for y = -1,1 do for z = -1,1 do if not (x==0 and y==0 and z==0) then minetest.after(0.1, nodeupdate_single, {x=p.x+x, y=p.y+y, z=p.z+z}) end nodeupdate_single({x=p.x+x, y=p.y+y, z=p.z+z}, not (x==0 and y==0 and z==0)) end end end

#### 0 comments on commit `97f0bb0`

Please sign in to comment.