Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local delay = 180
- local function itemBelow()
- local ok, item = turtle.inspectDown()
- if ok then
- if item["name"] == "minecraft:chest" or item["name"] == "ironchest:iron_chest" then
- return "chest"
- else
- return "other"
- end
- else
- return "none"
- end
- end
- local function tryFindChest(maxDistance)
- local dx = 0
- for i=1,maxDistance do
- if itemBelow() == "chest" then
- return true
- end
- if turtle.forward() then
- dx = dx + 1
- else
- break
- end
- end
- -- no luck, return back
- turtle.turnRight()
- turtle.turnRight()
- for i=1,dx do
- while not turtle.forward() do
- sleep(0.5)
- end
- end
- return false
- end
- local function unload()
- local total = 0
- for i=1,16 do
- if turtle.getItemCount(i) > 0 then
- total = total + turtle.getItemCount(i)
- turtle.select(i)
- if not turtle.dropDown() then
- print("No space in the chest")
- fs.delete("startup")
- return false
- end
- sleep(0.5)
- end
- end
- print("Time: "..os.time().." items: "..total.." fuel: "..turtle.getFuelLevel())
- return true
- end
- -- enable autorun
- local s = "shell.run(\"shear\")"
- local f = fs.open("/startup", "w")
- f.write(s)
- f.close()
- -- find chest
- if itemBelow() ~= "chest" then
- print("Chest not found")
- return
- end
- if not unload() then
- return
- end
- while true do
- -- check fuel
- if turtle.getFuelLevel() < 100 then
- print("Low fuel")
- return
- end
- -- sanity check
- if itemBelow() ~= "chest" then
- print("Chest not found")
- return
- end
- -- harvest
- local dx = 0
- while true do
- if turtle.forward() then
- dx = dx + 1
- else
- break
- end
- local item = itemBelow()
- if item == "none" then
- repeat
- local sheared = turtle.attackDown()
- until not sheared
- elseif item ~= "none" then
- break
- end
- end
- -- return back
- turtle.turnRight()
- turtle.turnRight()
- for i=1,dx do
- while not turtle.forward() do
- sleep(0.5)
- end
- end
- turtle.turnRight()
- turtle.turnRight()
- -- unload
- if not unload() then
- return
- end
- sleep(delay)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement