From 68020d2e93a5a7fda5076d5a0933bb099065500c Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Fri, 9 Nov 2012 15:25:21 +0100 Subject: [PATCH] Dont allow the bucket to replace nodes that are not buildable to --- mods/bucket/init.lua | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) 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