Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- os.loadAPI("file")
- parent = 1637
- stop = false
- dists = 1
- is = 1
- js = 1
- fwd = function()
- refuel()
- turtle.digUp()
- turtle.digDown()
- while turtle.forward()==false do
- turtle.dig()
- end
- end
- refuel = function()
- if turtle.getFuelLevel()<20 then
- if turtle.getItemCount(16)==1 then
- send(":OOF", true)
- end
- turtle.select(16)
- if turtle.refuel(1)==false then
- send(":PF", true)
- end
- turtle.select(15)
- end
- if isfull()==true then
- empty()
- end
- end
- isfull = function()
- local full = true
- for i=1,14 do
- if turtle.getItemCount(i)==0 then
- full = false
- end
- end
- return full
- end
- empty = function()
- turtle.digDown()
- turtle.select(15)
- turtle.placeDown()
- for i=1,14 do
- turtle.select(i)
- turtle.dropDown()
- end
- turtle.select(15)
- turtle.digDown()
- end
- write = function(dist, i, j)
- file.write("state", {dist, i, j})
- end
- spiral = function()
- dist = dists
- turtle.select(15)
- if turtle.detectDown()==true then
- turtle.digDown()
- end
- while true do
- dist = dist + 1
- for i=is,2 do
- for j=js,dist do
- fwd()
- write(dist-1, i, j+1)
- if stop then
- print("Received kill message! Stopping..")
- send("stop", true)
- end
- end
- js = 1
- turtle.turnRight()
- write(dist-1, i+1, 1)
- end
- is = 1
- end
- end
- rednetWait = function()
- while true do
- ID, message = rednet.receive()
- if message == "stop" then
- stop = true
- else
- send(message, false)
- end
- end
- end
- start = function(dist, i, j)
- dists = dist
- is = i
- js = j
- stop = false
- rednet.open("right")
- send("start", false)
- parallel.waitForAny(spiral, rednetWait)
- end
- send = function(msg, quit)
- --0 for start signal, 1 for kill signal
- rednet.send(parent, msg)
- if quit then
- os.reboot()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement