Advertisement
giintv

Single Laser 1.1

Aug 11th, 2013
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.14 KB | None | 0 0
  1. function DetectPeripheral(name)  
  2.                 local sides = {"top" , "bottom" , "front" , "left" , "right" , "back"}    
  3.         for i = 1, 6 do
  4.                 if peripheral.isPresent(sides[i]) and peripheral.getType(sides[i]) == name then
  5.                         return sides[i]
  6.                 end
  7.         end
  8.         return nil
  9. end
  10. offset = 0
  11.  
  12.  
  13. m = peripheral.wrap(DetectPeripheral("mininglaser"))
  14. if not m.isMining() then
  15.         while not passed do
  16.         term.setCursorPos(1, 1)
  17.         passed = false
  18.         term.clear()
  19.         print("Press X to mine")
  20.         print("or press O to offset")
  21.         print("current offset is "..offset)
  22.         event, scancode = os.pullEvent("key")
  23.                 if tonumber(scancode) == 45 then
  24.                         print("Mining")
  25.                         m.startMining()
  26.                         passed = true
  27.                 elseif tonumber(scancode) == 24 then
  28.                     term.clear()
  29.                     term.setCursorPos(1, 1)
  30.                     print("Enter the offset")
  31.                     offset = tonumber(read())
  32.                     if offset == nil then
  33.                         print("Wrong input")
  34.                         offset = 0
  35.                     else
  36.                         m.setStartLayerOffset(offset)
  37.                     end
  38.  
  39.                 end
  40.  
  41.         end
  42. end
  43.  
  44. function interrupt()
  45.         event, scancode = os.pullEvent("key")
  46.         if tonumber(scancode) == 31 then
  47.                 m.stop()
  48.                 print("stopped")
  49.                 os.reboot()
  50.                 return 0
  51.         end
  52. end
  53. function monitor()
  54.         if m.isMining() then
  55.             state, energy, layer, valuablesMined, valuablesInLayer = m.getMinerState()
  56.             term.clear()
  57.             term.setCursorPos(1, 1)
  58.  
  59.             print ("State: " .. state)
  60.             print ("Energy: " .. energy)
  61.             print ("Mined: " .. valuablesMined .. "/" .. valuablesInLayer .. " at layer " .. layer)
  62.             print ("press S to stop and reboot")
  63.             sleep(2)
  64.         else
  65.                 os.reboot()
  66.                 end
  67. end
  68.  
  69.  
  70.  
  71. while true do
  72.         parallel.waitForAny(monitor, interrupt)
  73. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement