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