1 -- Minetest 0.4 mod: bucket
2 -- See README.txt for licensing and other information.
4 minetest.register_alias("bucket", "bucket:bucket_empty")
5 minetest.register_alias("bucket_water", "bucket:bucket_water")
6 minetest.register_alias("bucket_lava", "bucket:bucket_lava")
8 minetest.register_craft({
9 output = 'bucket:bucket_empty 1',
11 {'default:steel_ingot', '', 'default:steel_ingot'},
12 {'', 'default:steel_ingot', ''},
19 -- Register a new liquid
20 -- source = name of the source node
21 -- flowing = name of the flowing node
22 -- itemname = name of the new bucket item (or nil if liquid is not takeable)
23 -- inventory_image = texture of the new bucket item (ignored if itemname == nil)
24 -- This function can be called from any mod (that depends on bucket).
25 function bucket.register_liquid(source, flowing, itemname, inventory_image)
26 bucket.liquids[source] = {
31 bucket.liquids[flowing] = bucket.liquids[source]
33 if itemname ~= nil then
34 minetest.register_craftitem(itemname, {
35 inventory_image = inventory_image,
37 liquids_pointable = true,
38 on_use = function(itemstack, user, pointed_thing)
39 -- Must be pointing to node
40 if pointed_thing.type ~= "node" then
43 -- Check if pointing to a liquid
44 n = minetest.env:get_node(pointed_thing.under)
45 if bucket.liquids[n.name] == nil then
47 minetest.env:add_node(pointed_thing.above, {name=source})
48 elseif n.name ~= source then
50 minetest.env:add_node(pointed_thing.under, {name=source})
52 return {name="bucket:bucket_empty"}
58 minetest.register_craftitem("bucket:bucket_empty", {
59 inventory_image = "bucket.png",
61 liquids_pointable = true,
62 on_use = function(itemstack, user, pointed_thing)
63 -- Must be pointing to node
64 if pointed_thing.type ~= "node" then
67 -- Check if pointing to a liquid source
68 n = minetest.env:get_node(pointed_thing.under)
69 liquiddef = bucket.liquids[n.name]
70 if liquiddef ~= nil and liquiddef.source == n.name and liquiddef.itemname ~= nil then
71 minetest.env:add_node(pointed_thing.under, {name="air"})
72 return {name=liquiddef.itemname}
77 bucket.register_liquid(
78 "default:water_source",
79 "default:water_flowing",
80 "bucket:bucket_water",
84 bucket.register_liquid(
85 "default:lava_source",
86 "default:lava_flowing",
91 minetest.register_craft({
93 recipe = "default:bucket_lava",