Advertisement
asweigart

stairminer (book)

Jul 31st, 2016
436
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. --[[ Stair Miner program by Al Sweigart
  2. Mines in a stair pattern. ]]
  3.  
  4. os.loadAPI('hare')
  5.  
  6. local cliArgs, targetDepth, columnDepth, result, errorMessage
  7.  
  8. cliArgs = {...}
  9. targetDepth = tonumber(cliArgs[1])
  10.  
  11. -- display "usage" info
  12. if targetDepth == nil or cliArgs[1] == '?' then
  13. print('Usage: stairminer <depth>')
  14. return
  15. end
  16.  
  17. turtle.digDown()
  18.  
  19. columnDepth = 2
  20. while true do
  21. -- move forward
  22. hare.digUntilClear()
  23. turtle.forward()
  24.  
  25. -- mine while descending
  26. for i = 1, columnDepth do
  27. -- check for bedrock
  28. result, errorMessage = turtle.digDown()
  29. if errorMessage == 'Unbreakable block detected' then
  30. print('Hit bedrock. Done.')
  31. return
  32. else
  33. turtle.down()
  34. end
  35. end
  36.  
  37. -- check if done
  38. print('Current depth: ' .. columnDepth)
  39. if columnDepth >= targetDepth then
  40. print('Done.')
  41. return
  42. end
  43.  
  44. -- move forward
  45. hare.digUntilClear()
  46. turtle.forward()
  47. turtle.digDown()
  48.  
  49. -- check if there's enough fuel to go up and back down again
  50. while turtle.getFuelLevel() < (columnDepth * 2) do
  51. -- try to burn fuel items in the inventory
  52. for slot = 1, 16 do
  53. turtle.select(slot)
  54. turtle.refuel()
  55. end
  56.  
  57. if turtle.getFuelLevel() < (columnDepth * 2) then
  58. print('Please load more fuel...')
  59. os.sleep(10)
  60. end
  61. end
  62.  
  63. -- check for a full inventory
  64. while hare.selectEmptySlot() == false do
  65. print('Please unload the inventory...')
  66. os.sleep(10)
  67. end
  68.  
  69. -- mine while ascending
  70. for i = 1, columnDepth do
  71. hare.digUpUntilClear()
  72. turtle.up()
  73. end
  74.  
  75. columnDepth = columnDepth + 2
  76. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement