Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tArgs = { ... }
- if #tArgs < 2 then
- print("Usage: quarry <width> <length>")
- return
- end
- xParam = tonumber(tArgs[1])
- zParam = tonumber(tArgs[2])
- homeX = 0
- homeY = 0
- homeZ = 0
- x = 0
- y = 0
- z = 0
- facing = 0
- lastX = 0
- lastY = 0
- lastZ = 0
- lastFacing = 0
- function checkFuel()
- while turtle.getFuelLevel() < 10 do
- turtle.select(16)
- turtle.refuel(1)
- turtle.select(1)
- end
- if turtle.getItemCount(15) < 5 then
- emptyInv()
- end
- end
- function forward()
- while turtle.forward() == false do
- checkFuel()
- turtle.dig()
- turtle.attack()
- end
- if facing == 0 then
- z = z + 1
- end
- if facing == 1 then
- x = x - 1
- end
- if facing == 2 then
- z = z - 1
- end
- if facing == 3 then
- x = x + 1
- end
- end
- function back()
- while turtle.forward() == false do
- checkFuel()
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.dig()
- turtle.attack()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- if facing == 0 then
- z = z - 1
- end
- if facing == 1 then
- x = x + 1
- end
- if facing == 2 then
- z = z + 1
- end
- if facing == 3 then
- x = x - 1
- end
- end
- function up()
- while turtle.up() == false do
- checkFuel()
- turtle.digUp()
- turtle.attackUp()
- end
- y = y + 1
- end
- function down()
- while turtle.down() == false do
- checkFuel()
- turtle.digDown()
- turtle.attackDown()
- end
- y = y - 1
- end
- function turnLeft()
- turtle.turnLeft()
- if facing == 0 then
- facing = 3
- else
- facing = facing - 1
- end
- end
- function turnRight()
- turtle.turnRight()
- if facing == 3 then
- facing = 0
- else
- facing = facing + 1
- end
- end
- function checkFull()
- if turtle.getItemCount(15) > 0 then
- emptyInv()
- return
- end
- end
- function emptyInv()
- lastX = x
- lastY = y
- lastZ = z
- lastFacing = facing
- while homeY > y do
- up()
- end
- while homeY < y do
- down()
- end
- while homeX > x do
- while facing ~= 3 do
- turnLeft()
- end
- forward()
- end
- while homeX < x do
- while facing ~= 1 do
- turnLeft()
- end
- forward()
- end
- while homeZ > z do
- while facing ~= 0 do
- turnLeft()
- end
- forward()
- end
- while homeZ < z do
- while facing ~= 2 do
- turnLeft()
- end
- forward()
- end
- while facing ~= 2 do
- turnLeft()
- end
- for i = 1,15 do
- turtle.select(i)
- turtle.drop()
- end
- turtle.select(16)
- if turtle.getItemCount(16) < 5 then
- turnRight()
- turtle.refuel()
- turtle.suck()
- end
- turtle.select(1)
- while lastX > x do
- while facing ~= 3 do
- turnLeft()
- end
- forward()
- end
- while lastX < x do
- while facing ~= 1 do
- turnLeft()
- end
- forward()
- end
- while lastZ > z do
- while facing ~= 0 do
- turnLeft()
- end
- forward()
- end
- while lastZ < z do
- while facing ~= 2 do
- turnLeft()
- end
- forward()
- end
- while lastY > y do
- up()
- end
- while lastY < y do
- down()
- end
- while facing ~= lastFacing do
- turnLeft()
- end
- return
- end
- function goHome()
- while homeY > y do
- up()
- end
- while homeY < y do
- down()
- end
- while homeX > x do
- while facing ~= 3 do
- turnLeft()
- end
- forward()
- end
- while homeX < x do
- while facing ~= 1 do
- turnLeft()
- end
- forward()
- end
- while homeZ > z do
- while facing ~= 0 do
- turnLeft()
- end
- forward()
- end
- while homeZ < z do
- while facing ~= 2 do
- turnLeft()
- end
- forward()
- end
- while facing ~= 2 do
- turnLeft()
- end
- for i = 1,15 do
- turtle.select(i)
- turtle.drop()
- end
- turnRight()
- turnRight()
- end
- function checkBedRock()
- if turtle.detectDown() == true then
- goHome()
- return true
- end
- return false
- end
- uselessVar = 0
- function dig()
- turtle.select(1)
- while true do
- for q = 1,xParam do
- for p = 1,zParam-1 do
- forward()
- checkFull()
- end
- if q ~= xParam then
- if facing == 0 then
- turnRight()
- forward()
- turnRight()
- checkFull()
- else
- turnLeft()
- forward()
- turnLeft()
- checkFull()
- end
- end
- end
- while homeX > x do
- while facing ~= 3 do
- turnLeft()
- end
- forward()
- end
- while homeX < x do
- while facing ~= 1 do
- turnLeft()
- end
- forward()
- end
- while homeZ > z do
- while facing ~= 0 do
- turnLeft()
- end
- forward()
- end
- while homeZ < z do
- while facing ~= 2 do
- turnLeft()
- end
- forward()
- end
- while facing ~= 0 do
- turnRight()
- end
- turtle.digDown()
- if checkBedRock() == true then
- break
- end
- down()
- end
- end
- dig()
Add Comment
Please, Sign In to add comment