Advertisement
D4rkSol1tud3

groundControl

May 24th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.48 KB | None | 0 0
  1. require("process")
  2. require("quarry")
  3.  
  4. args = {...}
  5. local running = true
  6. local modem = peripheral.wrap("left")
  7.  
  8. local commandsChannel = 66
  9. local displayChannel = 68
  10. modem.open(commandsChannel)
  11.  
  12. local cancel = false
  13. local mining = false
  14.  
  15. local function updateDisplay()
  16.   local mined = process.countMinedItems()
  17.   process.addToTotalMined(mined)
  18.   modem.transmit(displayChannel, commandsChannel, textutils.serialise(mined))
  19. end
  20.  
  21. local function mineFoward(steps)
  22.   if(not steps) then
  23.     steps = 1
  24.   end
  25.  
  26.   while(steps > 0) do
  27.     if(cancel) then
  28.       print("Mining cancelled")
  29.       return
  30.     end
  31.     print("Mining foward, steps left:", steps)
  32.     quarry.foward()
  33.     sleep(20)
  34.     updateDisplay()
  35.     steps = steps - 1
  36.   end
  37.   mining = false
  38. end
  39.  
  40. local function networkListen()
  41.   while(running) do
  42.     local e, mSide, sChannel, rChennel, msg = os.pullEvent("modem_message")
  43.     if(msg == "stop") then
  44.       running = false
  45.       cancel = true
  46.       modem.transmit(displayChannel, commandsChannel, "stop")
  47.     elseif (msg == "fw") then
  48.       if(not mining) then
  49.         os.queueEvent("quarry_mine", 16)
  50.       else
  51.         print("already mining")
  52.       end
  53.     end
  54.   end
  55.   modem.closeAll()
  56.   print("Finished")
  57. end
  58.  
  59. local function awaitForMining()
  60.   while(running) do
  61.     local e, steps = os.pullEvent("quarry_mine")
  62.     if(not mining) then
  63.       mining = true
  64.       mineFoward(steps)
  65.     end
  66.   end
  67. end
  68.  
  69. parallel.waitForAny(networkListen, awaitForMining)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement