Advertisement
natie3

MazeBuilder

Aug 1st, 2013
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.25 KB | None | 0 0
  1. args = {...}
  2.  
  3. local function Define()
  4.   maze = {1,2,3,4,5,6,7,8,9,10,11,12,13,14}
  5.   maze[1] = {0,0,0,0,0,1,0,0,0,0,0,0,0,0}
  6.   maze[2] = {0,1,1,1,0,1,1,1,0,1,1,1,1,0}
  7.   maze[3] = {0,1,0,0,0,0,0,0,0,1,0,0,0,0}
  8.   maze[4] = {0,1,1,1,1,1,1,0,1,1,0,1,1,0}
  9.   maze[5] = {0,0,0,0,0,0,1,0,0,0,0,0,1,0}
  10.   maze[6] = {1,1,0,1,1,0,1,1,1,1,1,0,1,1}
  11.   maze[7] = {0,1,0,1,0,0,1,0,0,0,0,0,0,0}
  12.   maze[8] = {0,1,0,1,1,1,1,0,1,1,1,1,1,0}
  13.   maze[9] = {0,0,0,0,0,0,1,0,1,0,0,0,0,0}
  14.   maze[10] = {1,1,1,0,1,0,1,0,1,0,1,0,1,0}
  15.   maze[11] = {0,1,0,0,1,0,1,0,0,0,0,0,1,0}
  16.   maze[12] = {0,0,0,1,1,0,1,0,1,1,1,1,1,0}
  17.   maze[13] = {0,1,1,1,1,0,1,0,1,0,0,0,1,0}
  18.   maze[14] = {0,0,0,0,0,0,0,0,0,0,1,0,0,0}
  19. end
  20.  
  21. local function select(item)
  22.   if item == 1 then
  23.     for i = 1, 4 do
  24.       if turtle.getItemCount(i) > 0 then
  25.         turtle.select(i)
  26.         return
  27.       end
  28.     end
  29.   else
  30.     for i = 1, 4 do
  31.       i = i + 4
  32.       if turtle.getItemCount(i) > 0 then
  33.         turtle.select(i)
  34.         return
  35.       end
  36.     end
  37.   end
  38. end
  39.  
  40. local function Maze(build)
  41.   turn = 1
  42.   turtle.select(16)
  43.   turtle.digUp()
  44.   turtle.up()
  45.   turtle.digUp()
  46.   turtle.up()
  47.   turtle.placeDown()
  48.   if build then
  49.     turtle.turnRight()
  50.     turtle.turnRight()
  51.     turtle.back()
  52.     turtle.place()
  53.   else
  54.     turtle.select(5)
  55.     turtle.dig()
  56.     turtle.forward()
  57.     turtle.turnLeft()
  58.     turtle.turnLeft()
  59.     turtle.select(16)
  60.     turtle.place()
  61.     turtle.turnLeft()
  62.     turtle.turnLeft()
  63.     turtle.select(5)
  64.   end
  65.   for y = 1, 14 do
  66.     for x = 2, 14 do
  67.       if build then
  68.         turtle.back()
  69.         select(2)
  70.         turtle.place()
  71.         if turn == 2 then x = 15 - x end
  72.         if maze[y][x] == 1 then
  73.           select(1)
  74.           turtle.placeDown()
  75.         end
  76.       else
  77.         turtle.select(5)
  78.         turtle.dig()
  79.         turtle.forward()
  80.         turtle.select(1)
  81.         turtle.digDown()
  82.       end
  83.     end
  84.     if turn == 1 then
  85.       turtle.turnRight()
  86.     else
  87.       turtle.turnLeft()
  88.     end
  89.     if y ~= 14 then
  90.       if build then
  91.         turtle.back()
  92.         select(2)
  93.         turtle.place()
  94.         if y ~= 14 then
  95.           if maze[(y+1)][14] == 1 then
  96.             select(1)
  97.             turtle.placeDown()
  98.           end    
  99.         end
  100.       else
  101.         turtle.select(5)
  102.         turtle.dig()
  103.         turtle.forward()
  104.         turtle.select(1)
  105.         if y ~= 14 then
  106.           turtle.digDown()
  107.         end
  108.       end
  109.       if turn == 1 then
  110.         turtle.turnRight()
  111.         turn = 2
  112.       else
  113.         turtle.turnLeft()
  114.         turn = 1
  115.       end  
  116.     end  
  117.   end
  118.   if build then
  119.     turtle.turnRight()
  120.     turtle.turnRight()
  121.   end
  122.   turtle.select(16)
  123.   turtle.dig()
  124.   turtle.forward()
  125.   turtle.turnRight()
  126.   if build then
  127.     turtle.turnRight()
  128.     select(2)
  129.     turtle.place()
  130.     turtle.turnLeft()
  131.   end
  132.   turtle.select(16)
  133.   turtle.digDown()
  134.   turtle.down()
  135.   turtle.placeUp()
  136.   turtle.down()
  137.   turtle.placeUp()
  138.   turtle.forward()
  139.   turtle.turnRight()
  140.   for i = 1, 15 do
  141.     turtle.forward()
  142.   end
  143.   turtle.turnRight()
  144. end
  145.      
  146. Define()
  147. if (args[1] == "build") and (turtle.getItemCount(5) > 0) then
  148.   Maze(true)
  149. elseif (args[1] == "destroy") and (turtle.getItemCount(5) == 0) then
  150.   Maze(false)
  151. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement