Created
December 22, 2013 23:21
-
-
Save ShadowNinja/8089636 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/mods/bucket/init.lua b/mods/bucket/init.lua | |
index 3751cfe..eeff992 100644 | |
--- a/mods/bucket/init.lua | |
+++ b/mods/bucket/init.lua | |
@@ -58,17 +58,18 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name | |
return | |
end | |
+ local node = minetest.get_node_or_nil(pointed_thing.under) | |
+ local ndef | |
+ if node then | |
+ ndef = minetest.registered_nodes[node.name] | |
+ end | |
-- Call on_rightclick if the pointed node defines it | |
- if user and not user:get_player_control().sneak then | |
- local n = minetest.get_node(pointed_thing.under) | |
- local nn = n.name | |
- local ndef = minetest.registered_nodes[nn] | |
- if ndef and ndef.on_rightclick then | |
- return ndef.on_rightclick( | |
- pointed_thing.under, | |
- n, user, | |
- itemstack) or itemstack | |
- end | |
+ if ndef and ndef.on_rightclick and | |
+ user and not user:get_player_control().sneak then | |
+ return ndef.on_rightclick( | |
+ pointed_thing.under, | |
+ node, user, | |
+ itemstack) or itemstack | |
end | |
local place_liquid = function(pos, node, source, flowing, fullness) | |
@@ -98,19 +99,18 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name | |
end | |
-- Check if pointing to a buildable node | |
- local node = minetest.get_node(pointed_thing.under) | |
local fullness = tonumber(itemstack:get_metadata()) | |
if not fullness then fullness = LIQUID_MAX end | |
- if minetest.registered_nodes[node.name].buildable_to then | |
+ if ndef and ndef.buildable_to then | |
-- buildable; replace the node | |
place_liquid(pointed_thing.under, node, | |
source, flowing, fullness) | |
else | |
-- not buildable to; place the liquid above | |
-- check if the node above can be replaced | |
- local node = minetest.get_node(pointed_thing.above) | |
- if minetest.registered_nodes[node.name].buildable_to then | |
+ local node = minetest.get_node_or_nil(pointed_thing.above) | |
+ if node and minetest.registered_nodes[node.name].buildable_to then | |
place_liquid(pointed_thing.above, | |
node, source, | |
flowing, fullness) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment