Advertisement
MintTheFox

turtle strip mine

Sep 27th, 2012
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.43 KB | None | 0 0
  1. local tArgs = { ... }
  2. local distance = tonumber( tArgs[1] )
  3. local torches = tArgs[2]
  4. local returnside = tArgs[3]
  5. local traveled = 0
  6. local light = 0
  7. local fueled = 0
  8. local level = turtle.getFuelLevel()
  9.  
  10. function fuelup()
  11.   fueled = 1
  12.   term.clear()
  13.   term.setCursorPos(1,1)
  14.   print("Sufficient fuel. Beginning operation")
  15.   turtle.select(16)
  16.   turtle.placeDown()
  17. end
  18.  
  19. function strip()
  20.   turtle.dig()
  21.  
  22.   if (light == 12) and (string.lower(torches) == "true") then
  23.     turtle.placeDown()
  24.     light = 0
  25.  
  26.   else
  27.     light = light + 1
  28.   end
  29.  
  30.   if turtle.forward() == true then
  31.     turtle.digUp()
  32.     turtle.digDown()      
  33.  
  34.   else
  35.     turtle.dig()
  36.   end
  37. end
  38.  
  39. if #tArgs ~= 3 or
  40. (tArgs[2]:lower() ~= "true" and tArgs[2]:lower() ~= "false") or
  41. (tArgs[3]:lower() ~= "left" and tArgs[3]:lower() ~= "right" and tArgs[3]:lower() ~= "none") then
  42.     print( "Usage: <length> <torchesPlaced> <sideReturned>" )
  43.     print( "Example: 50 true left" )
  44.     return
  45. end
  46.  
  47. turtle.refuel()
  48.  
  49. while true do
  50.   if level >= (distance*2 +1) and (fueled == 0) then
  51.     fuelup()
  52.  
  53.   elseif level <= (distance*2 +1) and (fueled == 0) then
  54.     term.clear()
  55.     term.setCursorPos(1,1)
  56.     repeat
  57.       turtle.refuel()
  58.       level = turtle.getFuelLevel()
  59.       print("Fuel level: "..level )
  60.       print("Insufficient fuel to complete operation!")
  61.       print("Please insert more fuel.")
  62.       term.setCursorPos(1,1)
  63.       sleep(1)
  64.     until level >= (distance*2 +1)
  65.       fuelup()
  66.   end
  67.  
  68.   if (traveled ~= distance) and (fueled == 1) then
  69.     strip()
  70.     traveled = traveled + 1
  71.  
  72.   elseif traveled == distance then
  73.     term.setCursorPos(1,3)
  74.     print("")
  75.     print("Operation half complete. Returning.")
  76.     turtle.placeDown()
  77.     light = 0
  78.  
  79.     if string.lower(returnside) == "right" then
  80.         turtle.turnRight()
  81.         turtle.dig()
  82.         turtle.forward()
  83.         turtle.digUp()
  84.         turtle.digDown()
  85.         turtle.turnRight()
  86.  
  87.     elseif string.lower(returnside) == "left" then
  88.         turtle.turnLeft()
  89.         turtle.dig()
  90.         turtle.forward()
  91.         turtle.digUp()
  92.         turtle.digDown()
  93.         turtle.turnLeft()
  94.        
  95.     elseif string.lower(returnside) == "none" then
  96.       print("Operation complete. Terminating program.")
  97.       break
  98.      
  99.     end
  100.  
  101.     repeat
  102.       strip()
  103.       traveled = traveled - 1
  104.  
  105.     until traveled == 0
  106.       print("")
  107.       print("Return complete. Terminating program.")
  108.       break
  109.   end
  110. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement