Advertisement
pferguson2212

carttunneler

Mar 29th, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.10 KB | None | 0 0
  1. local tunnelLength = 0
  2. local tunnelDepth = 0
  3. local curIter = 1
  4. local curx = 0
  5. local cury = 0
  6. local curz = 0
  7. local dir = 1 -- 1=Forward, 2=Right, 3=Back & 4=Left
  8. local itemCount = 1
  9.  
  10. local function toInt(value)
  11.     return math.floor(tonumber(value) or error("Could not cast '" .. tostring(value) .. "' to number.'"))
  12. end
  13.  
  14. local function forward()
  15.     if turtle.forward() == false then
  16.         if turtle.getFuelLevel() == 0 then
  17.             write("No fuel left, refuel")
  18.             return -1
  19.         else
  20.             write("Blocked")
  21.             return 0
  22.         end
  23.     else
  24.         if dir == 1 then curx = curx + 1 end
  25.         if dir == 2 then cury = cury + 1 end
  26.         if dir == 3 then curx = curx - 1 end
  27.         if dir == 4 then cury = cury - 1 end
  28.     end
  29.     return 1
  30. end
  31.  
  32. local function back()
  33.     if turtle.back() == false then
  34.         if turtle.getFuelLevel() == 0 then
  35.             write("No fuel left, refuel")
  36.             return -1
  37.         else
  38.             write("Blocked")
  39.             return 0
  40.         end
  41.     else
  42.         if dir == 1 then curx = curx - 1 end
  43.         if dir == 2 then cury = cury - 1 end
  44.         if dir == 3 then curx = curx + 1 end
  45.         if dir == 4 then cury = cury + 1 end
  46.     end
  47.     return 1
  48. end
  49.  
  50. local function up()
  51.     if turtle.up() == false then
  52.         if turtle.getFuelLevel() == 0 then
  53.             write("No fuel left, refuel")
  54.             return -1
  55.         else
  56.             write("Blocked")
  57.             return 0
  58.         end
  59.     else
  60.         curz = curz + 1
  61.     end
  62.     return 1
  63. end
  64.  
  65. local function down()
  66.     if turtle.down() == false then
  67.         if turtle.getFuelLevel() == 0 then
  68.             write("No fuel left, refuel")
  69.             return -1
  70.         else
  71.             write("Blocked")
  72.             return 0
  73.         end
  74.     else
  75.         curz = curz - 1
  76.     end
  77.     return 1
  78. end
  79.  
  80. local function left()
  81.     if turtle.left() == false then
  82.         return 0
  83.     else
  84.         dir = dir - 1
  85.         if dir < 1 then dir = 4 end
  86.         return 1
  87.     end
  88. end
  89.  
  90. local function right()
  91.     if turtle.right() == false then
  92.         return 0
  93.     else
  94.         dir = dir + 1
  95.         if dir > 4 then dir = 1 end
  96.         return 1
  97.     end
  98. end
  99.  
  100. local function dig()
  101.     if turtle.dig() == false then
  102.         return 0
  103.     else
  104.         return 1
  105.     end
  106. end
  107.  
  108. local function digUp()
  109.     if turtle.digUp() == false then
  110.         return 0
  111.     else
  112.         return 1
  113.     end
  114. end
  115.  
  116. local function digDown()
  117.     if turtle.digDown() == false then
  118.         return 0
  119.     else
  120.         return 1
  121.     end
  122. end
  123.  
  124. print("Please specify tunnel length:")
  125. tunnelLength = toInt(read())
  126. print("Please specify tunnel depth:")
  127. tunnelDepth = toInt(read())
  128.  
  129. write("Digging down")
  130. curIter = 1
  131. while curIter <= tunnelDepth do
  132.     digDown()
  133.     down()
  134.     curIter = curIter + 1
  135. end
  136.  
  137. write("Tunnelling")
  138. curIter = 1
  139. while curIter <= tunnelLength do
  140.     dig()
  141.     forward()
  142.     digDown()
  143.     if itemCount < 6 then
  144.         turtle.select(5)
  145.         turtle.placeDown()
  146.         itemCount = itemCount + 1
  147.     else
  148.         write("Placing powered rail...")
  149.         turtle.select(6)
  150.         turtle.placeDown()
  151.         itemCount = 1
  152.     end
  153.     curIter = curIter + 1
  154. end
  155.  
  156. write("Digging to surface")
  157. while turtle.detectUp() == true do
  158.     digUp()
  159.     up()
  160. end
  161.  
  162. write("Going back down")
  163. while curz > (0 - tunnelDepth) do
  164.     down()
  165. end
  166.  
  167. write("Moving back")
  168. curIter = 1
  169. while curIter <= tunnelLength do
  170.     back()
  171.     curIter = curIter + 1
  172. end
  173.  
  174. write("Moving up")
  175. curIter = 1
  176. while curIter <= tunnelDepth do
  177.     up()
  178.     curIter = curIter + 1
  179. end
  180.  
  181. write("Complete")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement