Advertisement
guamie

RoomDigger

Jan 22nd, 2015
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.79 KB | None | 0 0
  1. function moveForward()
  2.     if not turtle.forward() then
  3.                 if turtle.detect() then
  4.                         if not turtle.dig() then
  5.                                 print("dig returning false after detect")
  6.                                 return false
  7.                         else
  8.                                 if turtle.forward() == true then
  9.                                         return true
  10.                                 else
  11.                                         return moveForward()
  12.                                 end
  13.                         end
  14.                 else
  15.                         while turtle.attack() do
  16.                                 print("Turtle is attacking")
  17.                         end
  18.                         if turtle.forward() == true then
  19.                                 return true
  20.                         else
  21.                                 return moveForward()
  22.                         end
  23.                 end
  24.         else
  25.                 return true
  26.     end
  27. end
  28.  
  29. function moveDown()
  30.     if not turtle.down() then
  31.         if turtle.detectDown() then
  32.             if not turtle.digDown() then
  33.                 print("dig down returning false after detect")
  34.                 return false
  35.                         else
  36.                                 turtle.down()
  37.                                 return true
  38.                         end
  39.                 else
  40.                         attack = True
  41.                         while turtle.attackDown() do
  42.                                 turtle.attackDown()
  43.                         end
  44.                         turtle.down()
  45.             return true
  46.         end
  47.     else
  48.                 return true
  49.         end
  50. end
  51.  
  52. function moveUp()
  53.         if not turtle.up() then
  54.                 if turtle.detectUp() then
  55.                         if not turtle.digUp() then
  56.                                 print("dig up returning false after detect")
  57.                                 return false
  58.                         else
  59.                                 turtle.up()
  60.                                 return true
  61.                         end
  62.         else
  63.             attack = True                  
  64.                         while turtle.attackUp() do
  65.                                 turtle.attackUp()
  66.             end
  67.             turtle.up()
  68.             return true
  69.         end
  70.     else
  71.         return true
  72.     end
  73. end
  74.  
  75.  
  76.     local tArgs = {...}
  77.     if #tArgs ~= 3 then
  78.       print("Requires length, width, height")
  79.       return
  80.     end
  81.      
  82.     local x = tonumber(tArgs[1]) - 1
  83.     local y = tonumber(tArgs[2])
  84.     local z = tonumber(tArgs[3])
  85.      
  86.     if x == nil or y == nil or z == nil then
  87.       print("Invalid dimensions")
  88.       return
  89.     end
  90.      
  91.     if x < 0 or y < 0 or z < 0 then
  92.       print("Invalid (negative) dimensions")
  93.       return
  94.     end
  95.      
  96.     local fuel = turtle.getFuelLevel()
  97.     local roomSize = x * y * z
  98.     while fuel < roomSize do
  99.       if not turtle.refuel(1) then
  100.         print("Not enough fuel")
  101.         return
  102.       end
  103.     end
  104.      
  105.     local direction = true
  106.     for i = 1, z do
  107.       for j = 1, y do
  108.         for k = 1, x do
  109.         moveForward()
  110.         end
  111.         if j < y then
  112.           if direction then
  113.             turtle.turnRight()
  114.             moveForward()
  115.             turtle.turnRight()
  116.             direction = false
  117.           else
  118.             turtle.turnLeft()
  119.             moveForward()
  120.             turtle.turnLeft()
  121.             direction = true
  122.           end
  123.         end
  124.       end
  125.       if i < z then
  126.         moveUp()
  127.         turtle.turnRight()
  128.         turtle.turnRight()
  129.       end
  130.     end
  131.      
  132.     if y % 2 == 0 then
  133.       turtle.turnRight()
  134.       for i = 1, y do
  135.         turtle.forward()
  136.       end
  137.       turtle.turnRight()
  138.     else
  139.       turtle.turnLeft()
  140.       for i = 1, y do
  141.         turtle.forward()
  142.       end
  143.       turtle.turnLeft()
  144.       for i = 1, x do
  145.         turtle.forward()
  146.       end
  147.       turtle.turnRight()
  148.       turtle.turnRight()
  149.     end
  150.     for i = 1, z do
  151.       turtle.down()
  152.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement