Simplify empty bucket behaviour
This commit is contained in:
parent
c0f4ce199d
commit
b6438d8a59
@ -62,48 +62,32 @@ minetest.register_craftitem(
|
|||||||
|
|
||||||
local nodename=minetest.get_node(pointed_thing.under).name
|
local nodename=minetest.get_node(pointed_thing.under).name
|
||||||
|
|
||||||
|
local replace_bucket = function(itemstack, new_bucket)
|
||||||
|
if itemstack:get_count() == 1 then
|
||||||
|
itemstack:set_name(new_bucket)
|
||||||
|
else
|
||||||
|
itemstack:take_item()
|
||||||
|
|
||||||
|
local inv=user:get_inventory()
|
||||||
|
|
||||||
|
if inv:room_for_item("main", {name="default:bucket_water"}) then
|
||||||
|
inv:add_item("main", "default:bucket_water")
|
||||||
|
else
|
||||||
|
local pos = user:get_pos()
|
||||||
|
pos.y = math.floor(pos.y + 0.5)
|
||||||
|
minetest.add_item(pos, "default:bucket_water")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
minetest.remove_node(pointed_thing.under)
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
|
||||||
if nodename == "default:water_source" then
|
if nodename == "default:water_source" then
|
||||||
itemstack:take_item()
|
itemstack = replace_bucket(itemstack, "default:bucket_water")
|
||||||
|
|
||||||
local inv=user:get_inventory()
|
|
||||||
|
|
||||||
if inv:room_for_item("main", {name="default:bucket_water"}) then
|
|
||||||
inv:add_item("main", "default:bucket_water")
|
|
||||||
else
|
|
||||||
local pos = user:get_pos()
|
|
||||||
pos.y = math.floor(pos.y + 0.5)
|
|
||||||
minetest.add_item(pos, "default:bucket_water")
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.remove_node(pointed_thing.under)
|
|
||||||
elseif nodename == "default:river_water_source" then
|
elseif nodename == "default:river_water_source" then
|
||||||
itemstack:take_item()
|
itemstack = replace_bucket(itemstack, "default:bucket_river_water")
|
||||||
|
|
||||||
local inv=user:get_inventory()
|
|
||||||
|
|
||||||
if inv:room_for_item("main", {name="default:bucket_river_water"}) then
|
|
||||||
inv:add_item("main", "default:bucket_river_water")
|
|
||||||
else
|
|
||||||
local pos = user:get_pos()
|
|
||||||
pos.y = math.floor(pos.y + 0.5)
|
|
||||||
minetest.add_item(pos, "default:bucket_river_water")
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.remove_node(pointed_thing.under)
|
|
||||||
elseif nodename == "default:swamp_water_source" then
|
elseif nodename == "default:swamp_water_source" then
|
||||||
itemstack:take_item()
|
itemstack = replace_bucket(itemstack, "default:bucket_swamp_water")
|
||||||
|
|
||||||
local inv=user:get_inventory()
|
|
||||||
|
|
||||||
if inv:room_for_item("main", {name="default:bucket_swamp_water"}) then
|
|
||||||
inv:add_item("main", "default:bucket_swamp_water")
|
|
||||||
else
|
|
||||||
local pos = user:get_pos()
|
|
||||||
pos.y = math.floor(pos.y + 0.5)
|
|
||||||
minetest.add_item(pos, "default:bucket_swamp_water")
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.remove_node(pointed_thing.under)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return itemstack
|
return itemstack
|
||||||
|
Loading…
x
Reference in New Issue
Block a user