Maciej Kasatkin
2012-09-12 50bf1039b837414e92fcd4e55f89203bff1f503b
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
a773aa 12         charge=get_RE_item_load(charge,mining_drill_max_charge)
86bb77 13         if charge-200>0 then
582f94 14          drill_dig_it(minetest.get_pointed_thing_position(pointed_thing, above),user)
86bb77 15          charge =charge-200;    
a773aa 16         charge=set_RE_item_load(charge,mining_drill_max_charge)
582f94 17         item["wear"]=tostring(charge)
MK 18         itemstack:replace(item)
19         end
20         return itemstack
21         end
22     end,
23 })
24
25 minetest.register_craft({
26     output = 'technic:mining_drill',
27     recipe = {
28         {'technic:stainless_steel_ingot', 'technic:diamond_drill_head', 'technic:stainless_steel_ingot'},
29         {'technic:stainless_steel_ingot', 'technic:red_energy_crystal', 'technic:stainless_steel_ingot'},
30         {'', 'moreores:copper_ingot', ''},
31     }
32 })
33
34
35
36
37
38
39 function drill_dig_it (pos, player)        
40     local node=minetest.env:get_node(pos)
41     if node.name == "air" then return end
42     if node.name == "default:lava_source" then return end
43     if node.name == "default:lava_flowing" then return end
44     if node.name == "default:water_source" then minetest.env:remove_node(pos) return end
45     if node.name == "default:water_flowing" then minetest.env:remove_node(pos) return end
46     if node.name == "ignore" then minetest.env:remove_node(pos) return end
47
48     if player then 
49     local drops = minetest.get_node_drops(node.name, "default:pick_mese")
50     if player:get_inventory() then
51         local _, dropped_item
52         for _, dropped_item in ipairs(drops) do
53             player:get_inventory():add_item("main", dropped_item)
54         end
55     end
56     minetest.env:remove_node(pos)
57     end
58
59 end