Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Requires
- local Ore = require("ore")
- local Move = require("move")
- local Mine = require("dig")
- -- Clear screen
- term.clear()
- term.setCursorPos(1, 1)
- -- Refuel
- local neededFuel = 100
- turtle.select(16)
- turtle.refuel()
- if turtle.getFuelLevel() < neededFuel then
- print("Error: not enough fuel ("..turtle.getFuelLevel().."/"..neededFuel.."), please put fuel in last slot")
- return 1
- end
- turtle.select(1)
- print("Starting mining program...")
- local startD = 0
- local function mineVein(pos)
- local backPath = {}
- local recursive = true
- repeat
- table.insert(backPath, Move.opposite(pos))
- Mine.digAt[pos]()
- Move.goto[pos]()
- startD = startD + 1
- success, pos = Ore.lookForOre(false, true)
- until not success
- if turtle.getFuelLevel() <= startD + 10 then
- recursive = false
- end
- while #backPath > 0 do
- Move.goto[backPath[#backPath]]()
- startD = startD - 1
- if recursive then
- success, pos = Ore.lookForOre(false, true)
- if success then
- mineVein(pos)
- end
- end
- table.remove(backPath, #backPath)
- end
- end
- first = true
- while true do
- success, pos = Ore.lookForOre(first, false)
- first = false
- if success then
- print("Found ore at pos "..pos..". Digging vein...")
- mineVein(pos)
- print("Done, back on track ("..turtle.getFuelLevel()..")")
- end
- if turtle.getFuelLevel() <= startD + 10 then
- break
- end
- Mine.digFront()
- Move.goto[0]()
- startD = startD + 1
- end
- print("Going home...")
- while startD > 0 do
- turtle.back()
- startD = startD - 1
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement