Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function refuel()
- if turtle.getFuelLevel() < 20 then
- turtle.select(1)
- turtle.refuel(1)
- end
- end
- function restock()
- go_to_restock()
- take_items()
- drop_off_items()
- go_back_from_restock()
- end
- function needs_restocking()
- turtle.select(1)
- if turtle.getItemCount() < 4 then
- return true
- end
- turtle.select(2)
- if turtle.getItemCount() < 4 then
- return true
- end
- turtle.select(5)
- if turtle.getItemCount() > 0 then
- return true
- end
- return false
- end
- function take_items()
- turtle.turnLeft()
- turtle.select(1)
- while turtle.getItemCount() < 4 do
- turtle.suck(32 - turtle.getItemCount())
- end
- turtle.select(2)
- while turtle.getItemCount() < 8 do
- turtle.suckDown(32 - turtle.getItemCount())
- end
- turtle.turnRight()
- end
- function drop_off_items()
- for i=3, 16 do
- turtle.select(i)
- items = turtle.getItemDetail()
- if items then
- if items.name == "minecraft:log" then
- turtle.dropUp()
- else
- if items.name == "minecraft:sapling" then
- turtle.dropDown()
- else
- turtle.dropUp()
- print("Unknown item picked up: " .. items.name)
- end
- end
- end
- end
- end
- function go_to_restock()
- refuel()
- turtle.turnRight()
- turtle.turnRight()
- turtle.dig()
- turtle.forward()
- turtle.dig()
- turtle.forward()
- turtle.dig()
- turtle.forward()
- turtle.dig()
- turtle.forward()
- turtle.turnRight()
- turtle.turnRight()
- end
- function go_back_from_restock()
- refuel()
- turtle.dig()
- turtle.forward()
- turtle.dig()
- turtle.forward()
- turtle.dig()
- turtle.forward()
- turtle.dig()
- turtle.forward()
- turtle.dig()
- end
- function harvest()
- refuel()
- turtle.select(1)
- turtle.dig()
- turtle.forward()
- while true do
- refuel()
- turtle.dig()
- turtle.digUp()
- turtle.up()
- a, b = turtle.inspectUp()
- if not (a) or b.name == "minecraft:leaves" then
- break
- end
- end
- for i=1, 2 do
- refuel()
- turtle.dig()
- turtle.digUp()
- turtle.up()
- end
- refuel()
- turtle.turnRight()
- turtle.dig()
- turtle.forward()
- turtle.turnLeft()
- while true do
- refuel()
- turtle.dig()
- turtle.digDown()
- turtle.down()
- a, b = turtle.inspectDown()
- if a and (b.name == "minecraft:dirt") or (b.name == "minecraft:grass") then
- break
- end
- end
- turtle.dig()
- turtle.turnLeft()
- turtle.forward()
- turtle.turnRight()
- turtle.back()
- end
- function plant()
- planted = true
- refuel()
- turtle.select(1)
- turtle.dig()
- turtle.suck()
- turtle.forward()
- turtle.suck()
- turtle.dig()
- turtle.forward()
- turtle.suck()
- turtle.dig()
- turtle.turnRight()
- turtle.suck()
- turtle.select(2)
- turtle.place()
- turtle.turnLeft()
- turtle.back()
- turtle.place()
- turtle.turnRight()
- turtle.suck()
- turtle.place()
- turtle.turnLeft()
- turtle.back()
- turtle.place()
- end
- blockExists, block = turtle.inspect()
- if not (blockExists and (block.name == "minecraft:log" or block.name == "minecraft:sapling")) then
- take_items()
- go_back_from_restock()
- end
- while true do
- refuel()
- blockExists, block = turtle.inspect()
- if blockExists then
- if block.name == "minecraft:sapling" then
- sleep(1)
- turtle.select(1)
- turtle.suckUp()
- else
- harvest()
- end
- else
- plant()
- end
- if needs_restocking() then
- restock()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement