diff options
author | sfan5 <sfan5@live.de> | 2014-06-08 22:53:48 +0200 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2014-06-08 23:25:13 +0200 |
commit | 282f53ddb7be446537b237fd5e8dc3321156efdb (patch) | |
tree | 26d770e9904219c06fa5e86ffc7b5518a5002e15 /builtin/game | |
parent | 1cea2f1b490a1cb7ec047e79700fa885db92231b (diff) | |
download | minetest-282f53ddb7be446537b237fd5e8dc3321156efdb.tar.gz minetest-282f53ddb7be446537b237fd5e8dc3321156efdb.tar.bz2 minetest-282f53ddb7be446537b237fd5e8dc3321156efdb.zip |
Allow custom liquids to have drops
Diffstat (limited to 'builtin/game')
-rw-r--r-- | builtin/game/falling.lua | 33 |
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 |