systox

advex

Apr 2nd, 2018
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. args = {...}
  2. if not args[1] then
  3. print("Usage:nex <distance>")
  4. return
  5. end
  6.  
  7. t = 0
  8. dist = tonumber(args[1])
  9. x, y = term.getSize()
  10. term.clear()
  11.  
  12. m = "Simple Excavation program"
  13. term.setCursorPos((x - #m)/2, y / 2 - 1)
  14. print(m)
  15. m = "Mining " .. dist .. " blocks forward"
  16. term.setCursorPos((x - #m)/2, y / 2)
  17. print(m)
  18. m = "Fuel level: " .. turtle.getFuelLevel()
  19. term.setCursorPos((x - #m)/2, y / 2 + 1)
  20. print(m)
  21. m = "Total mined: " .. t
  22. term.setCursorPos((x - #m)/2, y / 2 + 2)
  23. term.clearLine()
  24. print(m)
  25.  
  26. function refuel()
  27. term.setCursorPos(1,1) term.clearLine()
  28. print("Please refuel me...")
  29. repeat
  30. term.setCursorPos(1,2) term.clearLine()
  31. write("Which slot: ")
  32. slot = tonumber(read())
  33. until slot ~= nil and slot > 0 and slot <= 16
  34. turtle.select(slot)
  35. term.setCursorPos(1,2) term.clearLine()
  36. term.setCursorPos(1,1) term.clearLine()
  37. 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
  38. sleep(1.25)
  39. term.clearLine()
  40. end
  41.  
  42. function updateFuelAndBlocks()
  43. m = "Fuel level: " .. turtle.getFuelLevel()
  44. term.setCursorPos((x - #m)/2, y / 2 + 1)
  45. term.clearLine()
  46. print(m)
  47. m = "Total mined: " .. t
  48. term.setCursorPos((x - #m)/2, y / 2 + 2)
  49. term.clearLine()
  50. print(m)
  51. end
  52.  
  53. function main()
  54. for i = 1, dist do
  55. if turtle.getFuelLevel() < 5 then refuel() end
  56. if turtle.detect() then turtle.dig() t = t + 1 end
  57. turtle.forward()
  58. if turtle.detectUp() then turtle.digUp() t = t + 1 end
  59. if turtle.detectDown() then turtle.digDown() t = t + 1 end
  60. updateFuelAndBlocks()
  61. end
  62. turtle.turnRight()
  63. turtle.dig()
  64. turtle.forward()
  65. turtle.digDown()
  66. turtle.digUp()
  67. turtle.turnRight()
  68. main()
  69. end
  70.  
  71. main()
  72.  
  73. -- Clean up
  74. term.clear()
  75. term.setCursorPos(1,1)
  76. print("Mined a total of " .. t .. " blocks.n")
Add Comment
Please, Sign In to add comment