mirror of
https://github.com/minetest/minetest.git
synced 2024-11-27 10:03:45 +01:00
Allow falling nodes to pass through solid "buildable_to" nodes.
This commit is contained in:
parent
450e7ef0c5
commit
9b5bb5c755
@ -57,6 +57,10 @@ minetest.register_entity("__builtin:falling_node", {
|
|||||||
-- Note: walkable is in the node definition, not in item groups
|
-- Note: walkable is in the node definition, not in item groups
|
||||||
if minetest.registered_nodes[bcn.name] and
|
if minetest.registered_nodes[bcn.name] and
|
||||||
minetest.registered_nodes[bcn.name].walkable then
|
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}
|
local np = {x=bcp.x, y=bcp.y+1, z=bcp.z}
|
||||||
-- Check what's here
|
-- Check what's here
|
||||||
local n2 = minetest.env:get_node(np)
|
local n2 = minetest.env:get_node(np)
|
||||||
@ -80,6 +84,7 @@ minetest.register_entity("__builtin:falling_node", {
|
|||||||
-- Create node and remove entity
|
-- Create node and remove entity
|
||||||
minetest.env:add_node(np, {name=self.nodename})
|
minetest.env:add_node(np, {name=self.nodename})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
|
nodeupdate(np)
|
||||||
else
|
else
|
||||||
-- Do nothing
|
-- Do nothing
|
||||||
end
|
end
|
||||||
@ -144,7 +149,8 @@ function nodeupdate_single(p)
|
|||||||
n_bottom = minetest.env:get_node(p_bottom)
|
n_bottom = minetest.env:get_node(p_bottom)
|
||||||
-- Note: walkable is in the node definition, not in item groups
|
-- Note: walkable is in the node definition, not in item groups
|
||||||
if minetest.registered_nodes[n_bottom.name] and
|
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)
|
minetest.env:remove_node(p)
|
||||||
spawn_falling_node(p, n.name)
|
spawn_falling_node(p, n.name)
|
||||||
nodeupdate(p)
|
nodeupdate(p)
|
||||||
|
Loading…
Reference in New Issue
Block a user