Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- args = {...}
- if not args[1] then
- print("Usage:nex <distance>")
- return
- end
- t = 0
- dist = tonumber(args[1])
- x, y = term.getSize()
- term.clear()
- m = "Simple Excavation program"
- term.setCursorPos((x - #m)/2, y / 2 - 1)
- print(m)
- m = "Mining " .. dist .. " blocks forward"
- term.setCursorPos((x - #m)/2, y / 2)
- print(m)
- m = "Fuel level: " .. turtle.getFuelLevel()
- term.setCursorPos((x - #m)/2, y / 2 + 1)
- print(m)
- m = "Total mined: " .. t
- term.setCursorPos((x - #m)/2, y / 2 + 2)
- term.clearLine()
- print(m)
- function refuel()
- term.setCursorPos(1,1) term.clearLine()
- print("Please refuel me...")
- repeat
- term.setCursorPos(1,2) term.clearLine()
- write("Which slot: ")
- slot = tonumber(read())
- until slot ~= nil and slot > 0 and slot <= 16
- turtle.select(slot)
- term.setCursorPos(1,2) term.clearLine()
- term.setCursorPos(1,1) term.clearLine()
- if turtle.refuel() then write("Refueled! Fuel level is now " .. turtle.getFuelLevel() .. ".") else write("No available fuel in that slot.") sleep(1.25) return refuel() end
- sleep(1.25)
- term.clearLine()
- end
- function updateFuelAndBlocks()
- m = "Fuel level: " .. turtle.getFuelLevel()
- term.setCursorPos((x - #m)/2, y / 2 + 1)
- term.clearLine()
- print(m)
- m = "Total mined: " .. t
- term.setCursorPos((x - #m)/2, y / 2 + 2)
- term.clearLine()
- print(m)
- end
- function main()
- for i = 1, dist do
- if turtle.getFuelLevel() < 5 then refuel() end
- if turtle.detect() then turtle.dig() t = t + 1 end
- turtle.forward()
- if turtle.detectUp() then turtle.digUp() t = t + 1 end
- if turtle.detectDown() then turtle.digDown() t = t + 1 end
- updateFuelAndBlocks()
- end
- turtle.turnRight()
- turtle.dig()
- turtle.forward()
- turtle.digDown()
- turtle.digUp()
- turtle.turnRight()
- main()
- end
- main()
- -- Clean up
- term.clear()
- term.setCursorPos(1,1)
- print("Mined a total of " .. t .. " blocks.n")
Add Comment
Please, Sign In to add comment