Advertisement
denvys5

Tunnel Bore

Aug 2nd, 2014
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.93 KB | None | 0 0
  1. --For directions, 0 is down, 1 is up, 2 is north (-Z), 3 is south (+Z), 4 is west (-X), and 5 is east (+X).
  2.  
  3.  
  4. tArgs = {...}
  5. local rs = redstone
  6. local name = shell.getRunningProgram()
  7. local redstoneSignalColour1 = colours.white
  8. local redstoneSignalColour2 = colours.orange
  9. local redstoneSignalColour3 = colours.magenta
  10. local redstoneSignalSide1 = "back"
  11. local redstoneSignalSide2 = "front"
  12. local engineSide = "right"
  13.  
  14. function saveArgs()
  15.   local file = fs.open(name..".cfg", "w")
  16.   file.writeLine(tArgs[1])
  17.   file.writeLine(tArgs[2])
  18.   file.close()
  19. end
  20.  
  21. function readArgs()
  22.   if not fs.exists(name..".cfg") then
  23.     return false
  24.   end
  25.   local file = fs.open(name..".cfg", "r")
  26.   tArgs[1] = tonumber(file.readLine(tArgs[1]))
  27.   tArgs[2] = tonumber(file.readLine(tArgs[2]))
  28.   file.close()
  29. end
  30.  
  31. function checkArgs()
  32.   if tArgs[1] == 0 or tArgs[2] == 0 or tArgs[3] == 0 or tArgs[4] == 0 or tArgs[5] == 0 or tArgs[6] == 0 then
  33.     print("Required arguments: Tunnel Distance (number), Tunnel Direction (number)")
  34.     readArgs()
  35. end
  36. end
  37.  
  38. function move(direction)
  39.   tArgs[1] = tArgs[1] - 1
  40.   saveArgs()
  41.   --local engine = peripheral.wrap("right")
  42.   --engine.move(direction, false, false)
  43.   rs.setBundledOutput(redstoneSignalSide2, redstoneSignalColour2)
  44.   sleep(0.5)
  45.   rs.setBundledOutput(redstoneSignalSide2, 0)
  46. end
  47.  
  48. function dig()
  49.   rs.setBundledOutput(redstoneSignalSide1, redstoneSignalColour1)
  50.   --rs.setBundledOutput("back", colours.white)
  51.   sleep(0.5)
  52.   rs.setBundledOutput(redstoneSignalSide1, 0)
  53. end
  54.  
  55. function makeWalls()
  56.   rs.setBundledOutput(redstoneSignalSide1, redstoneSignalColour3)
  57.   --rs.setBundledOutput("back", colours.orange)
  58.   sleep(0.5)
  59.   rs.setBundledOutput(redstoneSignalSide1, 0)
  60. end
  61.  
  62. function cycle(moveDirection)
  63.   sleep(0.2)
  64.   saveArgs()
  65.   checkArgs()
  66.   for i = 1,tArgs[1] do
  67.     dig()
  68.     sleep(0.2)
  69.     makeWalls()
  70.     sleep(0.2)
  71.     move(moveDirection)
  72.   end
  73. end
  74.  
  75. cycle(tArgs[2])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement