Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function dropOffItems()
- turtle.turnLeft()
- for i=1,16 do
- turtle.select(i)
- turtle.drop()
- end
- turtle.turnRight()
- turtle.select(1)
- end
- -- refuel chest is behind it
- function refuel(minFuelLevel)
- if minFuelLevel ~= nil and turtle.getFuelLevel() >= minFuelLevel then
- return
- end
- turtle.turnRight()
- turtle.turnRight()
- turtle.select(16)
- turtle.suck()
- turtle.refuel()
- turtle.select(1)
- turtle.turnLeft()
- turtle.turnLeft()
- end
- function bedrockForward_NotFinished()
- local blocksUp = 0
- -- must move forward by exactly 1
- while not turtle.forward() do
- -- clear out block, including sand or gravel
- while turtle.dig() do
- turtle.dig()
- end
- -- block cleared out or unbreakable (bedrock)
- -- try to move forward
- if not turtle.forward() then
- turtle.up()
- blocksUp = blocksUp + 1
- end
- end
- end
- function bedrockForward()
- local blocksUp = 3
- for i=1,blocksUp do
- turtle.up()
- end
- while turtle.dig() do
- turtle.dig()
- end
- turtle.forward()
- return blocksUp
- end
- function digDown()
- local blocks = 0
- while 1 do
- if turtle.digDown() then
- turtle.down()
- blocks = blocks + 1
- elseif turtle.down() then
- blocks = blocks + 1
- else
- return blocks
- end
- end
- end
- function digUp(blocks)
- for i=1,blocks do
- turtle.digUp()
- while not turtle.up() do
- turtle.digUp()
- end
- end
- end
- function downAndUp()
- bDn = digDown()
- bDn = bDn - bedrockForward()
- digUp(bDn)
- turtle.back()
- end
- function moveBack(blocks)
- for i=1,blocks do
- turtle.back()
- end
- end
- function moveForw(blocks)
- for i=1,blocks do
- while not turtle.forward() do
- turtle.dig()
- end
- end
- end
- function moveRight(blocks)
- turtle.turnRight()
- moveForw(blocks)
- turtle.turnLeft()
- end
- function moveLeft(blocks)
- turtle.turnLeft()
- moveForw(blocks)
- turtle.turnRight()
- end
- function checkArgs(args)
- if args[1] == nil or args[2] == nil then
- print( "Usage: quarry <blocks forward> <blocks right>")
- return false
- elseif args[1] % 2 ~= 0 or args[2] % 2 ~= 0 then
- print( "Please use even numbers for blocks")
- return false
- else
- return true
- end
- end
- args = {...}
- if not checkArgs(args) then
- print("Exiting...")
- else
- local bForw = args[1]
- local bRight = args[2]
- for r = 0, bRight/2 do
- for f = 0, bForw/2 do
- dropOffItems()
- refuel(1000)
- moveRight( r )
- moveForw( f * 2 )
- downAndUp()
- moveBack( f * 2 )
- moveLeft( r )
- end
- end
- dropOffItems()
- end
Advertisement
Add Comment
Please, Sign In to add comment