Sdzen Boco
2012-12-22 eea96621e8cb558ad58c4afb46502d183438b9da
commit | author | age
cbcdbf 1 water_can_max_load = 16
MK 2 lava_can_max_load = 8
3
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         
30         if pointed_thing.type ~= "node" then
31                     return end
32         n = minetest.env:get_node(pointed_thing.under)
b8d776 33         
R 34         item=itemstack:to_table()
35         local load=nil
36         if item["metadata"]=="" then load=0 
37         else load=tonumber(item["metadata"]) 
38         end
39         
cbcdbf 40         if n.name == "default:water_source" then
MK 41             if load+1<17 then
42             minetest.env:add_node(pointed_thing.under, {name="air"})
43              load=load+1;    
b8d776 44             item["metadata"]=tostring(load)
R 45             set_RE_wear(item,load,water_can_max_load)
cbcdbf 46             itemstack:replace(item)
MK 47             end
48             return itemstack
49         end
50         item=itemstack:to_table()
b8d776 51         if load==0 then return end
cbcdbf 52             
MK 53         if n.name == "default:water_flowing" then
54             minetest.env:add_node(pointed_thing.under, {name="default:water_source"})
55             load=load-1;    
b8d776 56             item["metadata"]=tostring(load)
R 57             set_RE_wear(item,load,water_can_max_load)
cbcdbf 58             itemstack:replace(item)
MK 59             return itemstack
60             end
61
62         n = minetest.env:get_node(pointed_thing.above)
63         if n.name == "air" then
64             minetest.env:add_node(pointed_thing.above, {name="default:water_source"})
65             load=load-1;    
b8d776 66             item["metadata"]=tostring(load)
R 67             set_RE_wear(item,load,water_can_max_load)
cbcdbf 68             itemstack:replace(item)
MK 69             return itemstack
70             end        
71     end,
72 })
73
74 minetest.register_tool("technic:lava_can", {
75     description = "Lava Can",
76     inventory_image = "technic_lava_can.png",
77     stack_max = 1,
78     liquids_pointable = true,
79     on_use = function(itemstack, user, pointed_thing)
b8d776 80     
R 81         item=itemstack:to_table()
82         local load=nil
83         if item["metadata"]=="" then load=0 
84         else load=tonumber(item["metadata"]) 
85         end
cbcdbf 86         
b8d776 87         if n.name == "default:water_source" then
R 88             if load+1<17 then
89             minetest.env:add_node(pointed_thing.under, {name="air"})
90              load=load+1;    
91             item["metadata"]=tostring(load)
92             set_RE_wear(item,load,water_can_max_load)
93             itemstack:replace(item)
94             end
95             return itemstack
96         end
97         item=itemstack:to_table()
98         if load==0 then return end
99             
100         if n.name == "default:lava_flowing" then
101             minetest.env:add_node(pointed_thing.under, {name="default:lava_source"})
102             load=load-1;    
103             item["metadata"]=tostring(load)
104             set_RE_wear(item,load,water_can_max_load)
105             itemstack:replace(item)
106             return itemstack
107             end
108
109         n = minetest.env:get_node(pointed_thing.above)
110         if n.name == "air" then
111             minetest.env:add_node(pointed_thing.above, {name="default:lava_source"})
112             load=load-1;    
113             item["metadata"]=tostring(load)
114             set_RE_wear(item,load,water_can_max_load)
115             itemstack:replace(item)
116             return itemstack
117             end    
118                 
cbcdbf 119         if pointed_thing.type ~= "node" then
MK 120                     return end
121         
122         n = minetest.env:get_node(pointed_thing.under)
123         if n.name == "default:lava_source" then
124             item=itemstack:to_table()
125             local load=tonumber((item["wear"])) 
126             if  load==0 then load =65535 end
127             load=get_RE_item_load(load,lava_can_max_load)
128             if load+1<9 then
129             minetest.env:add_node(pointed_thing.under, {name="air"})
130              load=load+1;    
3f6132 131             load=set_RE_item_load(load,lava_can_max_load)
cbcdbf 132             item["wear"]=tostring(load)
MK 133             itemstack:replace(item)
134             end
135             return itemstack
136         end
137         item=itemstack:to_table()
138             load=tonumber((item["wear"])) 
139             if  load==0 then load =65535 end
3f6132 140             load=get_RE_item_load(load,lava_can_max_load)
cbcdbf 141             if load==0 then return end
MK 142             
143         if n.name == "default:lava_flowing" then
144             minetest.env:add_node(pointed_thing.under, {name="default:lava_source"})
145             load=load-1;    
3f6132 146             load=set_RE_item_load(load,lava_can_max_load)
cbcdbf 147             item["wear"]=tostring(load)
MK 148             itemstack:replace(item)
149             return itemstack
150             end
151
152         n = minetest.env:get_node(pointed_thing.above)
153         if n.name == "air" then
154             minetest.env:add_node(pointed_thing.above, {name="default:lava_source"})
155             load=load-1;    
3f6132 156             load=set_RE_item_load(load,lava_can_max_load)
cbcdbf 157             item["wear"]=tostring(load)
MK 158             itemstack:replace(item)
159             return itemstack
160             end        
161     end,
162 })