Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local fuelLevelToRefuelAt = 5
- local refuelItemsToUseWhenRefuelling = 63
- local emergencyFuelToRetain = 0
- while true do
- os.pullEvent("redstone")
- if rs.getInput("bottom") then
- break
- end
- end
- local function back(x)
- for i = 1, x do
- turtle.back()
- end
- end
- local function farm(x)
- for i = 1, x do
- turtle.forward()
- turtle.digDown()
- turtle.placeDown()
- end
- end
- local function sugar(x)
- for i = 1, x do
- turtle.digDown()
- turtle.dig()
- turtle.forward()
- end
- end
- local function hedge(x)
- for i = 1, x do
- turtle.dig()
- turtle.digDown()
- turtle.placeDown()
- turtle.forward()
- end
- end
- local function harvest(x)
- for i = 1, x do
- turtle.dig()
- turtle.dig()
- turtle.forward()
- end
- end
- local function move(x)
- for i = 1, x do
- turtle.forward()
- end
- end
- function empty()
- if turtle.detectDown() == true then
- turtle.select(1)
- turtle.dropUp()
- turtle.select(2)
- turtle.dropUp()
- turtle.select(3)
- turtle.dropUp()
- turtle.select(4)
- turtle.dropUp()
- turtle.select(5)
- turtle.dropUp()
- turtle.select(6)
- turtle.dropUp()
- turtle.select(7)
- turtle.dropUp()
- turtle.select(8)
- turtle.dropUp()
- turtle.select(9)
- turtle.dropUp()
- turtle.select(1)
- end
- end
- function ensureFuel()
- -- Determine whether a refuel is required
- local fuelLevel = turtle.getFuelLevel()
- if (fuelLevel ~= "unlimited") then
- if (fuelLevel < fuelLevelToRefuelAt) then
- -- Need to refuel
- turtle.select(16)
- currentlySelectedSlot = 16
- local fuelItems = turtle.getItemCount(16)
- -- Do we need to impact the emergency fuel to continue? (always
- -- keep one fuel item in slot 16)
- if (fuelItems == 0) then
- writeMessage("Completely out of fuel!", messageLevel.FATAL)
- elseif (fuelItems == 1) then
- writeMessage("Out of Fuel!", messageLevel.ERROR)
- turtle.refuel()
- elseif (fuelItems <= (emergencyFuelToRetain + 1)) then
- writeMessage("Consuming emergency fuel supply. "..(fuelItems - 2).." emergency fuel items remain", messageLevel.WARNING)
- turtle.refuel(1)
- else
- -- Refuel the lesser of the refuelItemsToUseWhenRefuelling and the number of items more than
- -- the emergency fuel level
- if (fuelItems - (emergencyFuelToRetain + 1) < refuelItemsToUseWhenRefuelling) then
- turtle.refuel(fuelItems - (emergencyFuelToRetain + 1))
- else
- turtle.refuel(refuelItemsToUseWhenRefuelling)
- end
- end
- end
- end
- end
- --Wheat and Potatoes
- ensureFuel()
- back(2)
- turtle.turnRight()
- move(5)
- turtle.turnLeft()
- move(15)
- turtle.select(14)
- turtle.turnLeft()
- move(2)
- turtle.turnLeft()
- farm(5)
- turtle.select(15)
- farm(4)
- turtle.turnLeft()
- farm(1)
- turtle.turnLeft()
- farm(3)
- turtle.select(14)
- farm(6)
- turtle.turnRight()
- farm(1)
- turtle.turnRight()
- farm(5)
- turtle.select(13)
- farm(4)
- turtle.turnLeft()
- farm(1)
- turtle.turnLeft()
- farm(3)
- turtle.select(14)
- farm(6)
- turtle.turnRight()
- -- Sugar Canes
- turtle.up()
- turtle.up()
- sugar(9)
- turtle.digDown()
- turtle.turnRight()
- move(1)
- sugar(1)
- turtle.turnRight()
- sugar(9)
- turtle.turnLeft()
- move(2)
- turtle.turnLeft()
- sugar(9)
- turtle.digDown()
- turtle.turnRight()
- move(1)
- sugar(1)
- turtle.turnRight()
- sugar(9)
- turtle.down()
- turtle.turnLeft()
- move(3)
- turtle.turnLeft()
- -- Flax
- turtle.select(12)
- turtle.dig()
- move(1)
- turtle.placeDown()
- hedge(8)
- move(1)
- turtle.turnLeft()
- turtle.down()
- move(1)
- turtle.turnLeft()
- harvest(9)
- --Return to Chest
- turtle.up()
- move(2)
- turtle.turnLeft()
- move(7)
- turtle.turnRight()
- move(5)
- turtle.turnRight()
- move(2)
- empty()
- os.sleep(1800)
- os.reboot()
Advertisement
Add Comment
Please, Sign In to add comment