TheSommer

BetterBranch

Feb 10th, 2013
1,015
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.98 KB | None | 0 0
  1. --[[
  2.     Author
  3.         Rasmus Sommer aka. TheSommer
  4.         youtube.com/thesommersmc
  5.         twitch.tv/thesommer
  6.    
  7.     How to use:
  8.         Slot 1 - Fuel
  9.         Slot 2 - Torches
  10.    
  11.         betterBranch <length>
  12. --]]
  13.  
  14. local tArgs = { ... }
  15. if #tArgs ~= 1 then
  16.         print( "Usage: betterBranch <length>" )
  17.         return
  18. end
  19.  
  20. local length = tonumber( tArgs[1] )
  21.  
  22. if length < 1 then
  23.         print( "Length must be positive" )
  24.         return
  25. end
  26.  
  27. local function refuel()
  28.     if turtle.getFuelLevel() == 0 then
  29.         turtle.select(1)
  30.         if turtle.refuel(1) == false then
  31.             return false
  32.         end
  33.     end
  34. end
  35.  
  36. local function tryDig()
  37.     while turtle.detect() == true do
  38.         turtle.dig()
  39.         sleep(0.5)
  40.     end
  41. end
  42.  
  43. local function tryDigDown()
  44.     while turtle.detectDown() == true do
  45.         turtle.digDown()
  46.         sleep(0.5)
  47.     end
  48. end
  49.  
  50. local function tryDigUp()
  51.     while turtle.detectUp() == true do
  52.         turtle.digUp()
  53.         sleep(0.5)
  54.     end
  55. end
  56.  
  57. local function placeTorch()
  58.     turtle.turnRight()
  59.     tryDig()
  60.     turtle.select(2)
  61.     turtle.place()
  62.     turtle.turnLeft()
  63. end
  64.  
  65. local function tryForward()
  66.     if refuel() == false then
  67.         return false
  68.     end
  69.     tryDig()
  70.     turtle.forward()
  71.     tryDigUp()
  72.     tryDigDown()
  73. end
  74.  
  75. local function tryBack()
  76.     if refuel() == false then
  77.         return false
  78.     end
  79.     turtle.back()
  80. end
  81.  
  82. local count = 1
  83. local torchSpacing = 7
  84.  
  85. term.clear()
  86. term.setCursorPos(1,1)
  87. term.write("--[ Information ]--")
  88. for i=1, length do
  89.     if tryForward() == false then
  90.         term.clear()
  91.         term.setCursorPos(1,1)
  92.         term.write("Couldn't refuel. Aborting.")
  93.         return
  94.     end
  95.     if count % torchSpacing == 0 then
  96.         placeTorch()
  97.     end
  98.     term.setCursorPos(1,2)
  99.     term.clearLine()
  100.     term.write("Steps until return: "..length-i)
  101.     count = count + 1
  102. end
  103. term.setCursorPos(1,3)
  104. term.write("Returning to origin!")
  105. for i=1, length do
  106.     if tryBack() == false then
  107.         term.clear()
  108.         term.setCursorPos(1,1)
  109.         term.write("Couldn't refuel. Aborting.")
  110.         term.setCursorPos(1,2)
  111.         return
  112.     end
  113. end
  114. term.clear()
Advertisement
Add Comment
Please, Sign In to add comment