]> git.lizzy.rs Git - minetest.git/blob - data/mods/bucket/init.lua
Add some aliases to bucket
[minetest.git] / data / mods / bucket / init.lua
1 -- bucket (Minetest 0.4 mod)
2 -- A bucket, which can pick up water and lava
3
4 minetest.alias_craftitem("bucket", "bucket:bucket_empty")
5 minetest.alias_craftitem("bucket_water", "bucket:bucket_water")
6 minetest.alias_craftitem("bucket_lava", "bucket:bucket_lava")
7
8 minetest.register_craft({
9         output = 'craft "bucket:bucket_empty" 1',
10         recipe = {
11                 {'craft "steel_ingot"', '', 'craft "steel_ingot"'},
12                 {'', 'craft "steel_ingot"', ''},
13         }
14 })
15
16 minetest.register_craftitem("bucket:bucket_empty", {
17         image = "bucket.png",
18         stack_max = 1,
19         liquids_pointable = true,
20         on_place_on_ground = minetest.craftitem_place_item,
21         on_use = function(item, player, pointed_thing)
22                 if pointed_thing.type == "node" then
23                         n = minetest.env:get_node(pointed_thing.under)
24                         if n.name == "water_source" then
25                                 minetest.env:add_node(pointed_thing.under, {name="air"})
26                                 player:add_to_inventory_later('craft "bucket:bucket_water" 1')
27                                 return true
28                         elseif n.name == "lava_source" then
29                                 minetest.env:add_node(pointed_thing.under, {name="air"})
30                                 player:add_to_inventory_later('craft "bucket:bucket_lava" 1')
31                                 return true
32                         end
33                 end
34                 return false
35         end,
36 })
37
38 minetest.register_craftitem("bucket:bucket_water", {
39         image = "bucket_water.png",
40         stack_max = 1,
41         liquids_pointable = true,
42         on_place_on_ground = minetest.craftitem_place_item,
43         on_use = function(item, player, pointed_thing)
44                 if pointed_thing.type == "node" then
45                         n = minetest.env:get_node(pointed_thing.under)
46                         if n.name == "water_source" then
47                                 -- unchanged
48                         elseif n.name == "water_flowing" or n.name == "lava_source" or n.name == "lava_flowing" then
49                                 minetest.env:add_node(pointed_thing.under, {name="water_source"})
50                         else
51                                 minetest.env:add_node(pointed_thing.above, {name="water_source"})
52                         end
53                         player:add_to_inventory_later('craft "bucket:bucket_empty" 1')
54                         return true
55                 end
56                 return false
57         end,
58 })
59
60 minetest.register_craftitem("bucket:bucket_lava", {
61         image = "bucket_lava.png",
62         stack_max = 1,
63         liquids_pointable = true,
64         on_place_on_ground = minetest.craftitem_place_item,
65         on_use = function(item, player, pointed_thing)
66                 if pointed_thing.type == "node" then
67                         n = minetest.env:get_node(pointed_thing.under)
68                         if n.name == "lava_source" then
69                                 -- unchanged
70                         elseif n.name == "water_source" or n.name == "water_flowing" or n.name == "lava_flowing" then
71                                 minetest.env:add_node(pointed_thing.under, {name="lava_source"})
72                         else
73                                 minetest.env:add_node(pointed_thing.above, {name="lava_source"})
74                         end
75                         player:add_to_inventory_later('craft "bucket:bucket_empty" 1')
76                         return true
77                 end
78                 return false
79         end,
80 })