ShadowNinja
2013-10-30 be2f30a1a2f5b6c2aae7fd4cf8231aec2da0844d
commit | author | age
ee5c6c 1 local water_can_max_load = 16
K 2 local lava_can_max_load = 8
82cba9 3
be2f30 4 local S = technic.getter
S 5
82cba9 6 minetest.register_craft({
R 7     output = 'technic:water_can 1',
8     recipe = {
9         {'technic:zinc_ingot', 'technic:rubber','technic:zinc_ingot'},
10         {'default:steel_ingot', '', 'default:steel_ingot'},
11         {'technic:zinc_ingot', 'default:steel_ingot', 'technic:zinc_ingot'},
12     }
13 })
14
15 minetest.register_craft({
16     output = 'technic:lava_can 1',
17     recipe = {
18         {'technic:zinc_ingot', 'technic:stainless_steel_ingot','technic:zinc_ingot'},
19         {'technic:stainless_steel_ingot', '', 'technic:stainless_steel_ingot'},
20         {'technic:zinc_ingot', 'technic:stainless_steel_ingot', 'technic:zinc_ingot'},
21     }
22 })
23
24
25 minetest.register_tool("technic:water_can", {
be2f30 26     description = S("Water Can"),
82cba9 27     inventory_image = "technic_water_can.png",
R 28     stack_max = 1,
29     liquids_pointable = true,
30     on_use = function(itemstack, user, pointed_thing)
31         if pointed_thing.type ~= "node" then
eac484 32             return
82cba9 33         end
eac484 34         node = minetest.get_node(pointed_thing.under)
82cba9 35
eac484 36         local charge = nil
S 37         if itemstack:get_metadata() == "" then
38             charge = 0
39         else
40             charge = tonumber(itemstack:get_metadata())
41         end
42         if node.name == "default:water_source" then
43             if charge + 1 < 17 then
44                 minetest.remove_node(pointed_thing.under)
45                 charge = charge + 1
46                 itemstack:set_metadata(tostring(charge))
47                 technic.set_RE_wear(itemstack, charge, water_can_max_load)
48             end
82cba9 49             return itemstack
eac484 50         end
S 51         if charge == 0 then
52             return
53         end
54
55         if node.name == "default:water_flowing" then
56             minetest.set_node(pointed_thing.under, {name="default:water_source"})
57             charge = charge - 1
58             itemstack:set_metadata(tostring(charge))
59             technic.set_RE_wear(itemstack, charge, water_can_max_load)
60             return itemstack
61         end
62
63         node = minetest.get_node(pointed_thing.above)
64         if node.name == "air" then
65             minetest.set_node(pointed_thing.above, {name="default:water_source"})
66             charge = charge - 1;
67             itemstack:set_metadata(tostring(charge))
68             technic.set_RE_wear(itemstack, charge, water_can_max_load)
69             return itemstack
70         end        
82cba9 71     end,
R 72 })
73
74 minetest.register_tool("technic:lava_can", {
be2f30 75     description = S("Lava Can"),
82cba9 76     inventory_image = "technic_lava_can.png",
R 77     stack_max = 1,
78     liquids_pointable = true,
79     on_use = function(itemstack, user, pointed_thing)
eac484 80         if pointed_thing.type ~= "node" then
S 81             return
82cba9 82         end
eac484 83         node = minetest.get_node(pointed_thing.under)
S 84         local charge = 0
85         if itemstack:get_metadata() == "" then
86             charge = 0
87         else
88             charge = tonumber(itemstack:get_metadata())
82cba9 89         end
R 90
eac484 91         if node.name == "default:lava_source" then
S 92             if charge + 1 < 17 then
93                 minetest.remove_node(pointed_thing.under)
94                 charge = charge + 1
95                 itemstack:set_metadata(tostring(charge))
96                 technic.set_RE_wear(itemstack, charge, lava_can_max_load)
97             end
82cba9 98             return itemstack
eac484 99         end
S 100         if charge == 0 then
101             return
102         end
103
104         if node.name == "default:lava_flowing" then
105             minetest.set_node(pointed_thing.under, {name="default:lava_source"})
106             charge = charge - 1    
107             itemstack:set_metadata(tostring(charge))
108             technic.set_RE_wear(itemstack, charge, lava_can_max_load)
109             return itemstack
110         end
111
112         node = minetest.get_node(pointed_thing.above)
113         if node.name == "air" then
114             minetest.set_node(pointed_thing.above, {name="default:lava_source"})
115             charge = charge - 1
116             itemstack:set_metadata(tostring(charge))
117             technic.set_RE_wear(itemstack, charge, lava_can_max_load)
118             return itemstack
119         end
82cba9 120     end,
R 121 })
be2f30 122