summaryrefslogtreecommitdiff
path: root/builtin/game/falling.lua
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2014-06-08 22:53:48 +0200
committersfan5 <sfan5@live.de>2014-06-08 23:25:13 +0200
commit282f53ddb7be446537b237fd5e8dc3321156efdb (patch)
tree26d770e9904219c06fa5e86ffc7b5518a5002e15 /builtin/game/falling.lua
parent1cea2f1b490a1cb7ec047e79700fa885db92231b (diff)
downloadminetest-282f53ddb7be446537b237fd5e8dc3321156efdb.tar.gz
minetest-282f53ddb7be446537b237fd5e8dc3321156efdb.tar.bz2
minetest-282f53ddb7be446537b237fd5e8dc3321156efdb.zip
Allow custom liquids to have drops
Diffstat (limited to 'builtin/game/falling.lua')
-rw-r--r--builtin/game/falling.lua33
1 files changed, 14 insertions, 19 deletions
diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua
index 1a81916ae..b3d5a9a8b 100644
--- a/builtin/game/falling.lua
+++ b/builtin/game/falling.lua
@@ -79,22 +79,17 @@ 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)
- -- 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
- local drops = core.get_node_drops(n2.name, "")
- core.remove_node(np)
- -- Add dropped items
- 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)
- end
+ -- 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)
end
-- Create node and remove entity
core.add_node(np, self.node)
@@ -168,7 +163,7 @@ function nodeupdate_single(p, delay)
core.registered_nodes[n_bottom.name].liquidtype == "none") and
(n.name ~= n_bottom.name or (core.registered_nodes[n_bottom.name].leveled and
core.get_node_level(p_bottom) < core.get_node_max_level(p_bottom))) and
- (not core.registered_nodes[n_bottom.name].walkable or
+ (not core.registered_nodes[n_bottom.name].walkable or
core.registered_nodes[n_bottom.name].buildable_to) then
if delay then
core.after(0.1, nodeupdate_single, {x=p.x, y=p.y, z=p.z}, false)
@@ -180,7 +175,7 @@ function nodeupdate_single(p, delay)
end
end
end
-
+
if core.get_item_group(n.name, "attached_node") ~= 0 then
if not check_attached_node(p, n) then
drop_attached_node(p)
@@ -194,7 +189,7 @@ function nodeupdate(p, delay)
p.x = math.floor(p.x+0.5)
p.y = math.floor(p.y+0.5)
p.z = math.floor(p.z+0.5)
-
+
for x = -1,1 do
for y = -1,1 do
for z = -1,1 do