|
@@ -103,31 +103,55 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name |
|
|
end |
|
|
|
|
|
minetest.register_craftitem("bucket:bucket_empty", { |
|
|
description = "Empty Bucket", |
|
|
inventory_image = "bucket.png", |
|
|
stack_max = 1, |
|
|
liquids_pointable = true, |
|
|
on_use = function(itemstack, user, pointed_thing) |
|
|
-- Must be pointing to node |
|
|
if pointed_thing.type ~= "node" then |
|
|
return |
|
|
end |
|
|
-- Check if pointing to a liquid source |
|
|
local node = minetest.get_node(pointed_thing.under) |
|
|
local liquiddef = bucket.liquids[node.name] |
|
|
if liquiddef ~= nil and liquiddef.itemname ~= nil and |
|
|
node.name == liquiddef.source then |
|
|
if check_protection(pointed_thing.under, |
|
|
user:get_player_name(), |
|
|
"take ".. node.name) then |
|
|
return |
|
|
end |
|
|
description = "Empty Bucket", |
|
|
inventory_image = "bucket.png", |
|
|
stack_max = 99, |
|
|
liquids_pointable = true, |
|
|
on_use = function(itemstack, user, pointed_thing) |
|
|
-- Must be pointing to node |
|
|
if pointed_thing.type ~= "node" then |
|
|
return |
|
|
end |
|
|
-- Check if pointing to a liquid source |
|
|
local node = minetest.get_node(pointed_thing.under) |
|
|
local liquiddef = bucket.liquids[node.name] |
|
|
local item_count = user:get_wielded_item():get_count() |
|
|
|
|
|
if liquiddef ~= nil |
|
|
and liquiddef.itemname ~= nil |
|
|
and node.name == liquiddef.source then |
|
|
if check_protection(pointed_thing.under, |
|
|
user:get_player_name(), |
|
|
"take ".. node.name) then |
|
|
return |
|
|
end |
|
|
|
|
|
-- default set to return filled bucket |
|
|
local giving_back = liquiddef.itemname |
|
|
|
|
|
-- check if holding more than 1 empty bucket |
|
|
if item_count > 1 then |
|
|
|
|
|
-- if space in inventory add filled bucked, otherwise drop as item |
|
|
local inv = user:get_inventory() |
|
|
if inv:room_for_item("main", {name=liquiddef.itemname}) then |
|
|
inv:add_item("main", liquiddef.itemname) |
|
|
else |
|
|
local pos = user:getpos() |
|
|
pos.y = math.floor(pos.y + 0.5) |
|
|
core.add_item(pos, liquiddef.itemname) |
|
|
end |
|
|
|
|
|
-- set to return empty buckets minus 1 |
|
|
giving_back = "bucket:bucket_empty "..tostring(item_count-1) |
|
|
|
|
|
end |
|
|
|
|
|
minetest.add_node(pointed_thing.under, {name="air"}) |
|
|
minetest.add_node(pointed_thing.under, {name="air"}) |
|
|
|
|
|
return ItemStack(liquiddef.itemname) |
|
|
end |
|
|
end, |
|
|
return ItemStack(giving_back) |
|
|
end |
|
|
end, |
|
|
}) |
|
|
|
|
|
bucket.register_liquid( |
|
|
This comment has been minimized.
This code has wrong indentation.
This comment has been minimized.
794a436