Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local waterRow = {false,true,false,false,true,false,false,true,false}
- local keepFuel = 5
- -- FUNCTIONS
- local function refuel()
- local fuelLevel = turtle.getFuelLevel()
- if fuelLevel == "unlimited" or fuelLevel > 0 then
- return
- end
- local function tryRefuel()
- for n=1,16 do
- if turtle.getItemCount(n) > 0 then
- turtle.select(n)
- if turtle.refuel(1) then
- turtle.select(1)
- return true
- end
- end
- end
- turtle.select(1)
- return false
- end
- if not tryRefuel() then
- term.setCursorPos(12,7)
- term.clear()
- print( "Gimme som Fuel!" )
- while not tryRefuel() do
- sleep(1)
- end
- term.setCursorPos(15,7)
- term.clear()
- print("I'm on it...")
- end
- end
- function turnR(n)
- if n == nil then n=1 end
- for i = 1,n do
- turtle.turnRight()
- end
- end
- function turnL(n)
- if n == nil then n=1 end
- for i = 1,n do
- turtle.turnLeft()
- end
- end
- function go(nDistance)
- refuel()
- if not nDistance then nDistance=1 end
- while nDistance > 0 do
- refuel()
- if turtle.forward() then
- nDistance = nDistance - 1
- else
- sleep(0.5)
- end
- end
- end
- local function SelectSlot()
- local function trySelect()
- for i = 1,4 do
- if turtle.getItemCount(i) > 0 then
- turtle.select(i)
- return true
- end
- end
- turtle.select(1)
- return false
- end
- if not trySelect() then
- term.setCursorPos(12,7)
- term.clear()
- print( "Gimme som Bogearth!" )
- while not trySelect() do
- sleep(1)
- end
- term.setCursorPos(15,7)
- term.clear()
- print("I'm on it...")
- end
- return true
- end
- local function digPeat()
- turtle.select(16)
- if turtle.compareDown() then
- turtle.select(5)
- turtle.digDown()
- SelectSlot()
- turtle.placeDown()
- end
- end
- function digRow()
- for i = 1,9 do
- digPeat()
- if i ~= 9 then
- refuel()
- go()
- end
- end
- end
- function digWaterRow()
- for i = 1,9 do
- if not waterRow[i] then
- digPeat()
- end
- if i ~= 9 then
- refuel()
- go()
- end
- end
- end
- function dropStuff()
- turtle.select(5)
- local nTransfer = keepFuel - turtle.getItemCount(15)
- if turtle.getItemCount(5) > 0 and nTransfer > 0 then
- turtle.transferTo(15, nTransfer)
- end
- if turtle.getItemCount(15) > keepFuel then
- turtle.select(15)
- turtle.drop(turtle.getItemCount(15) - keepFuel)
- end
- for i = 5,14 do
- turtle.select(i)
- turtle.drop()
- end
- end
- function getStuff()
- turtle.select(1)
- if (turtle.getItemCount(1) + turtle.getItemCount(2)) < 128 then
- while turtle.suck() do
- if (turtle.getItemCount(1) + turtle.getItemCount(2)) >= 128 then break end
- end
- end
- if turtle.getItemCount(3) > 0 then
- turtle.select(3)
- turtle.drop()
- end
- turtle.select(1)
- end
- -- MAIN PROGRAMM
- while true do
- term.setCursorPos(12,7)
- term.clear()
- print("Ready to roll...")
- event = os.pullEvent("redstone")
- term.setCursorPos(12,7)
- term.clear()
- print("I'm on it...")
- turtle.select(1)
- if (turtle.getItemCount(1) + turtle.getItemCount(2)) < 128 then
- turnL(2)
- go()
- turnL()
- getStuff()
- turnL()
- go()
- end
- go()
- for i = 1,9 do
- if waterRow[i] then
- digWaterRow()
- else
- digRow()
- end
- if i ~= 9 then
- if i % 2 == 0 then
- turnR()
- go()
- turnR()
- else
- turnL()
- go()
- turnL()
- end
- end
- end
- turnR()
- go(8)
- turnR()
- go(11)
- turnL()
- dropStuff()
- turnL()
- go()
- turnR()
- getStuff()
- turnL()
- go()
- sleep(1)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement