Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- args = {...}
- Horizontal = 0
- if args[1] ~= nil then
- Horizontal = tonumber(args[1])
- end
- if args[1] == nil then
- print("Proper usage: getlavaNN numLeftRightStart")
- return
- end
- X = 0
- Y = 0
- Z = 0
- FarthestXThisRun = 0
- function UseBucket()
- turtle.select(2)
- if turtle.placeDown() == true then
- return true
- else
- return false
- end
- end
- function MoveForward()
- if turtle.forward() == true then
- X=X+1
- if X > FarthestXThisRun then
- FarthestXThisRun = X
- end
- return true
- else
- return false
- end
- end
- function MoveBack()
- if turtle.back() == true then
- X=X-1
- return true
- else
- return false
- end
- end
- function MoveDown()
- if turtle.down() == true then
- Z=Z-1
- return true
- else
- return false
- end
- end
- function MoveUp()
- if turtle.up() == true then
- Z=Z+1
- return true
- else
- return false
- end
- end
- function rewind()
- while Z < 0 do
- if MoveUp() == false then
- print("ceiling issue")
- end
- end
- while X > 0 do
- if MoveBack() == false then
- print("backboard issue")
- end
- end
- end
- function forwardwind()
- for i=0, FarthestXThisRun, 1 do
- MoveForward()
- end
- end
- function useFuel()
- turtle.select(1)
- turtle.transferTo(16,2)
- turtle.select(16)
- turtle.refuel()
- end
- function refuel()
- if turtle.getFuelLevel() < 10000 then
- turtle.select(1)
- if turtle.getItemCount() > 4 then
- useFuel()
- else
- print("Out of fuel!")
- rewind()
- UnHorizon()
- pitStop()
- print("All refueled.")
- AdjustHorizontal()
- forwardwind()
- end
- end
- end
- function gotbuckets()
- turtle.select(2)
- if turtle.getItemCount() < 2 then
- return false
- else
- return true
- end
- end
- function sort()
- for i=1, 2, 1 do
- turtle.select(i)
- for b=3, 16, 1 do
- if turtle.compareTo(b) == true then
- turtle.select(b)
- turtle.transferTo(i)
- turtle.select(i)
- end
- end
- end
- end
- function SortSuck()
- for i=3, 16, 1 do
- turtle.suck()
- end
- sort()
- for i=3, 16, 1 do
- turtle.select(i)
- turtle.drop()
- end
- end
- function GotSpace()
- local rem = turtle.getSelectedSlot()
- turtle.select(15)
- if turtle.getItemCount() > 0 then
- turtle.select(rem)
- return false
- else
- turtle.select(rem)
- return true
- end
- end
- function AdjustHorizontal()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- if Horizontal >= 0 then
- turtle.turnRight()
- for i=0, Horizontal, 1 do
- turtle.forward()
- end
- turtle.turnLeft()
- end
- if Horizontal < 0 then
- turtle.turnLeft()
- for i=0, (Horizontal*(-1)), 1 do
- turtle.forward()
- end
- turtle.turnRight()
- end
- end
- function UnHorizon()
- if Horizontal > 0 then
- turtle.turnLeft()
- for i=0, Horizontal, 1 do
- turtle.forward()
- end
- turtle.turnRight()
- end
- if Horizontal < 0 then
- turtle.turnRight()
- for i=0, (Horizontal*(-1)), 1 do
- turtle.forward()
- end
- turtle.turnLeft()
- end
- turtle.back()
- turtle.back()
- turtle.back()
- end
- function pitStop()
- turtle.turnRight()
- SortSuck()
- turtle.turnLeft()
- turtle.turnLeft()
- SortSuck()
- turtle.turnRight()
- refuel()
- end
- pitStop()
- while turtle.getFuelLevel() < 200 do
- refuel()
- end
- while turtle.getFuelLevel() > 100 do
- AdjustHorizontal()
- forwardwind()
- while GotSpace() == true and gotbuckets() == true do
- while turtle.getFuelLevel() < 200 do refuel() end
- UseBucket()
- if MoveDown() == false then
- while Z < 0 do MoveUp() end
- if MoveForward() == false then
- print("BRICK WALL!")
- print("Old Horizontal:", Horizontal)
- rewind()
- if Horizontal >= 0 then
- Horizontal = Horizontal + 1
- turtle.turnRight()
- if turtle.forward() == false then
- print("End of run reached.")
- turtle.turnLeft()
- UnHorizon()
- pitStop()
- print("All done!")
- return
- end
- turtle.turnLeft()
- end
- if Horizontal < 0 then
- Horizontal = Horizontal - 1
- turtle.turnLeft()
- if turtle.forward() == false then
- print("End of run reached.")
- turtle.turnRight()
- UnHorizon()
- pitStop()
- print("All done!")
- return
- end
- turtle.turnRight()
- end
- print("New Horizontal:", Horizontal)
- FarthestXThisRun = 0
- end
- end
- end
- rewind()
- UnHorizon()
- pitStop()
- end
- rewind()
- UnHorizon()
Add Comment
Please, Sign In to add comment