From: PilzAdam Date: Fri, 9 Nov 2012 14:25:21 +0000 (+0100) Subject: Dont allow the bucket to replace nodes that are not buildable to X-Git-Tag: 0.4.4~34^2 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=refs%2Fpull%2F29%2Fhead;p=oweals%2Fminetest_game.git Dont allow the bucket to replace nodes that are not buildable to --- diff --git a/mods/bucket/init.lua b/mods/bucket/init.lua index 0c340f7b..d725466b 100644 --- a/mods/bucket/init.lua +++ b/mods/bucket/init.lua @@ -40,14 +40,21 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image) if pointed_thing.type ~= "node" then return end - -- Check if pointing to a liquid + -- Check if pointing to a buildable node n = minetest.env:get_node(pointed_thing.under) - if bucket.liquids[n.name] == nil then - -- Not a liquid - minetest.env:add_node(pointed_thing.above, {name=source}) - elseif n.name ~= source then - -- It's a liquid + if minetest.registered_nodes[n.name].buildable_to then + -- buildable; replace the node minetest.env:add_node(pointed_thing.under, {name=source}) + else + -- not buildable to; place the liquid above + -- check if the node above can be replaced + n = minetest.env:get_node(pointed_thing.above) + if minetest.registered_nodes[n.name].buildable_to then + minetest.env:add_node(pointed_thing.above,{name=source}) + else + -- do not remove the bucket with the liquid + return + end end return {name="bucket:bucket_empty"} end