From 68020d2e93a5a7fda5076d5a0933bb099065500c Mon Sep 17 00:00:00 2001
From: PilzAdam <adam-k@outlook.com>
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 0c340f7..d725466 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