Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require("process")
- require("quarry")
- args = {...}
- local running = true
- local modem = peripheral.wrap("left")
- local commandsChannel = 66
- local displayChannel = 68
- modem.open(commandsChannel)
- local cancel = false
- local mining = false
- local function updateDisplay()
- local mined = process.countMinedItems()
- process.addToTotalMined(mined)
- modem.transmit(displayChannel, commandsChannel, textutils.serialise(mined))
- end
- local function mineFoward(steps)
- if(not steps) then
- steps = 1
- end
- while(steps > 0) do
- if(cancel) then
- print("Mining cancelled")
- return
- end
- print("Mining foward, steps left:", steps)
- quarry.foward()
- sleep(20)
- updateDisplay()
- steps = steps - 1
- end
- mining = false
- end
- local function networkListen()
- while(running) do
- local e, mSide, sChannel, rChennel, msg = os.pullEvent("modem_message")
- if(msg == "stop") then
- running = false
- cancel = true
- modem.transmit(displayChannel, commandsChannel, "stop")
- elseif (msg == "fw") then
- if(not mining) then
- os.queueEvent("quarry_mine", 16)
- else
- print("already mining")
- end
- end
- end
- modem.closeAll()
- print("Finished")
- end
- local function awaitForMining()
- while(running) do
- local e, steps = os.pullEvent("quarry_mine")
- if(not mining) then
- mining = true
- mineFoward(steps)
- end
- end
- end
- parallel.waitForAny(networkListen, awaitForMining)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement