Maciej Kasatkin
2012-09-11 582f94952a706f8d03ecfb7ba79fe84a66c4c871
commit | author | age
582f94 1 mining_drill_max_charge=60000
MK 2
3 minetest.register_tool("technic:mining_drill", {
4     description = "Mining Drill",
5     inventory_image = "technic_mining_drill.png",
6     stack_max = 1,
7     on_use = function(itemstack, user, pointed_thing)
8         if pointed_thing.type=="node" then 
9         item=itemstack:to_table()
10         local charge=tonumber((item["wear"])) 
11         if charge ==0 then charge =65535 end
12         if charge ==65535 then charge =1 end
13         charge=get_RE_item_load(charge,laser_mk1_max_charge)
14         if charge-400>0 then
15          drill_dig_it(minetest.get_pointed_thing_position(pointed_thing, above),user)
16          charge =charge-400;    
17         charge=set_RE_item_load(charge,laser_mk1_max_charge)
18         item["wear"]=tostring(charge)
19         itemstack:replace(item)
20         end
21         return itemstack
22         end
23     end,
24 })
25
26 minetest.register_craft({
27     output = 'technic:mining_drill',
28     recipe = {
29         {'technic:stainless_steel_ingot', 'technic:diamond_drill_head', 'technic:stainless_steel_ingot'},
30         {'technic:stainless_steel_ingot', 'technic:red_energy_crystal', 'technic:stainless_steel_ingot'},
31         {'', 'moreores:copper_ingot', ''},
32     }
33 })
34
35
36
37
38
39
40 function drill_dig_it (pos, player)        
41     local node=minetest.env:get_node(pos)
42     if node.name == "air" then return end
43     if node.name == "default:lava_source" then return end
44     if node.name == "default:lava_flowing" then return end
45     if node.name == "default:water_source" then minetest.env:remove_node(pos) return end
46     if node.name == "default:water_flowing" then minetest.env:remove_node(pos) return end
47     if node.name == "ignore" then minetest.env:remove_node(pos) return end
48
49     if player then 
50     local drops = minetest.get_node_drops(node.name, "default:pick_mese")
51     if player:get_inventory() then
52         local _, dropped_item
53         for _, dropped_item in ipairs(drops) do
54             player:get_inventory():add_item("main", dropped_item)
55         end
56     end
57     minetest.env:remove_node(pos)
58     end
59
60 end