Maciej Kasatkin
2012-10-28 01b21d49af04f9b3251c5edfb759995dc45d5110
mining_drill.lua
@@ -7,15 +7,13 @@
   on_use = function(itemstack, user, pointed_thing)
      if pointed_thing.type=="node" then 
      item=itemstack:to_table()
      local charge=tonumber((item["wear"]))
      if charge ==0 then charge =65535 end
      if charge ==65535 then charge =1 end
      charge=get_RE_item_load(charge,laser_mk1_max_charge)
      if charge-400>0 then
      if item["metadata"]=="" or item["metadata"]=="0" then return end --tool not charged
      charge=tonumber(item["metadata"])
      if charge-200>0 then
       drill_dig_it(minetest.get_pointed_thing_position(pointed_thing, above),user)
       charge =charge-400;
      charge=set_RE_item_load(charge,laser_mk1_max_charge)
      item["wear"]=tostring(charge)
       charge =charge-200;
      item["metadata"]=tostring(charge)
      set_RE_wear(item,charge,mining_drill_max_charge)
      itemstack:replace(item)
      end
      return itemstack
@@ -39,22 +37,13 @@
function drill_dig_it (pos, player)      
   local node=minetest.env:get_node(pos)
   if node.name == "air" then return end
   if node.name == "air" or node.name == "ignore" then return end
   if node.name == "default:lava_source" then return end
   if node.name == "default:lava_flowing" then return end
   if node.name == "default:water_source" then minetest.env:remove_node(pos) return end
   if node.name == "default:water_flowing" then minetest.env:remove_node(pos) return end
   if node.name == "ignore" then minetest.env:remove_node(pos) return end
   if player then
   local drops = minetest.get_node_drops(node.name, "default:pick_mese")
   if player:get_inventory() then
      local _, dropped_item
      for _, dropped_item in ipairs(drops) do
         player:get_inventory():add_item("main", dropped_item)
      end
   end
   minetest.env:remove_node(pos)
   end
   minetest.sound_play("mining_drill", {pos = pos, gain = 1.0, max_hear_distance = 10,})
   minetest.node_dig(pos,node,player)
end