Skip to content
Permalink
Browse files

Remove buildable_to nodes without dropping item when replaced by a fa…

…lling node
  • Loading branch information
CasimirKaPazi authored and sapier committed Aug 17, 2013
1 parent d9df592 commit 08f7ac5704e9156076c6f6a4fc6ae2658fae4179
Showing with 18 additions and 11 deletions.
  1. +18 −11 builtin/game/falling.lua
@@ -79,17 +79,24 @@ core.register_entity(":__builtin:falling_node", {
local np = {x=bcp.x, y=bcp.y+1, z=bcp.z}
-- Check what's here
local n2 = core.get_node(np)
-- remove node and replace it with it's drops
local drops = core.get_node_drops(n2.name, "")
core.remove_node(np)
local _, dropped_item
for _, dropped_item in ipairs(drops) do
core.add_item(np, dropped_item)
end
-- Run script hook
local _, callback
for _, callback in ipairs(core.registered_on_dignodes) do
callback(np, n2, nil)
-- If it's not air or liquid, remove node and replace it with
-- it's drops
if n2.name ~= "air" and (not core.registered_nodes[n2.name] or
core.registered_nodes[n2.name].liquidtype == "none") then
core.remove_node(np)
if core.registered_nodes[n2.name].buildable_to == false then
-- Add dropped items
local drops = core.get_node_drops(n2.name, "")
local _, dropped_item
for _, dropped_item in ipairs(drops) do
core.add_item(np, dropped_item)
end
end
-- Run script hook
local _, callback
for _, callback in ipairs(core.registered_on_dignodes) do
callback(np, n2, nil)
end
end
-- Create node and remove entity
core.add_node(np, self.node)

1 comment on commit 08f7ac5

@HybridDog

This comment has been minimized.

Copy link
Contributor

HybridDog commented on 08f7ac5 Aug 22, 2014

Please add a test if the node is allowed to become removed,
walkable and/or plantlike nodes' inventories, if they have one and something like sand falls into them, disappear even if this is disallowed, e.g. these red bones.

Please sign in to comment.
You can’t perform that action at this time.