Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- xCoord = 267
- yCoord = 69
- zCoord = -1594
- xHome = 267
- yHome = 69
- zHome = -1594
- xQuarry = 999
- zQuarry = 999
- yQuarry = 150
- xProgress = 999
- zProgress = 999
- yProgress = 150
- oProgress = 1
- orientation = 3
- orientations = {"north", "east", "south", "west"}
- zDiff = {-1, 0, 1, 0}
- xDiff = {0, 1, 0, -1}
- lineLength = 10
- lines = 10
- yMin = 999
- jobAvailable = true
- manager = 9
- function inventoryFull()
- turtle.select(9)
- full = turtle.getItemCount(9) > 0
- turtle.select(1)
- return full
- end
- function look(direction)
- while direction ~= orientations[orientation] do
- right()
- end
- end
- function moveForward()
- xCoord = xCoord + xDiff[orientation]
- zCoord = zCoord + zDiff[orientation]
- turtle.dig()
- moved = turtle.forward()
- while not(moved) do
- turtle.dig()
- moved = turtle.forward()
- end
- end
- function left()
- orientation = orientation - 1
- orientation = (orientation - 1) % 4
- orientation = orientation + 1
- turtle.turnLeft()
- end
- function right()
- orientation = orientation - 1
- orientation = (orientation + 1) % 4
- orientation = orientation + 1
- turtle.turnRight()
- end
- function moveUp()
- yCoord = yCoord + 1
- turtle.digUp()
- moved = false
- while not(moved) do
- moved = turtle.up()
- end
- end
- function moveDown()
- yCoord = yCoord - 1
- turtle.digDown()
- moved = false
- while not(moved) do
- moved = turtle.down()
- end
- if yMin > yCoord then
- yMin = yCoord
- end
- end
- function goto(xTarget, zTarget, yTarget)
- while yTarget < yCoord do
- moveDown()
- end
- while yTarget > yCoord do
- moveUp()
- end
- if xTarget < xCoord then
- look("west")
- while xTarget < xCoord do
- moveForward()
- end
- end
- if xTarget > xCoord then
- look("east")
- while xTarget > xCoord do
- moveForward()
- end
- end
- if zTarget < zCoord then
- look("north")
- while zTarget < zCoord do
- moveForward()
- end
- end
- if zTarget > zCoord then
- look("south")
- while zTarget > zCoord do
- moveForward()
- end
- end
- end
- function returnItems()
- xProgress = xCoord
- zProgress = zCoord
- yProgress = yCoord
- oProgress = orientation
- goto(xHome, zHome, yHome)
- look("north")
- for i = 1,9 do
- turtle.select(i)
- turtle.drop()
- end
- turtle.select(1)
- goto(xProgress, zProgress, yProgress)
- look(orientations[oProgress])
- end
- function digLine()
- for i = 1,lineLength do
- if inventoryFull() then
- returnItems()
- end
- moveForward()
- end
- end
- function digLayer()
- for i = 1,lines do
- digLine()
- if (i%2) == 1 and i < lines then
- left()
- moveForward()
- left()
- elseif i < lines then
- right()
- moveForward()
- right()
- end
- end
- goto(xQuarry, zQuarry, yCoord)
- look("north")
- moveDown()
- end
- function digQuarry(xTarget, zTarget, yTarget)
- xQuarry = xTarget
- zQuarry = zTarget
- yQuarry = yTarget
- goto(xQuarry, zQuarry, yQuarry)
- while yMin > 7 do
- digLayer()
- end
- goto(xQuarry, zQuarry, yQuarry)
- goto(xHome, zHome, yHome)
- yMin = 999
- end
- function getJob()
- while jobAvailable do
- print("Requesting job")
- rednet.send(manager, "getJob")
- id, message, dis = rednet.receive()
- if message == "yes" then
- id, xRec, dis = rednet.receive()
- id, zRec, dis = rednet.receive()
- id, yRec, dis = rednet.receive()
- xQuarry = tonumber(xRec)
- zQuarry = tonumber(zRec)
- yQuarry = tonumber(yRec)
- print("Job at "..xQuarry.." "..zQuarry.." "..yQuarry)
- digQuarry(xQuarry, zQuarry, yQuarry)
- print("Finished job")
- elseif message == "no" then
- print("No more jobs")
- jobAvailable = false
- end
- end
- end
- rednet.close("right")
- rednet.open("right")
- getJob(273, 69, -1594)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement