Advertisement
Guest User

room

a guest
Oct 31st, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.55 KB | None | 0 0
  1. local ar = {...}
  2. if #ar ~= 3 then
  3.   print("Usage: <width> <length> <height>")
  4.   return
  5. end
  6.  
  7. local w = tonumber(ar[1])
  8. local l = tonumber(ar[2])
  9. local h = tonumber(ar[3])
  10.  
  11. if w < 3 then
  12.   print("width must be greater than 2")
  13.   return
  14. elseif l < 3 then
  15.   print("length must be greater than 2")
  16.   return
  17. elseif h < 3 then
  18.   print("height must be greater than 2")
  19.   return
  20. end
  21.  
  22. if turtle.getItemCount(1) == 0 then
  23.   print("Insert items into turtle")
  24.   return
  25. end
  26.  
  27. local function go()
  28.   while not turtle.forward() do
  29.     turtle.dig()
  30.   end
  31. end
  32.  
  33. local function back()
  34.   while not turtle.back() do
  35.     turtle.turnLeft()
  36.     turtle.turnLeft()
  37.     turtle.dig()
  38.     turtle.turnLeft()
  39.     turtle.turnLeft()
  40.   end
  41. end
  42.  
  43. local function up()
  44.   while not turtle.up() do
  45.     turtle.digUp()
  46.   end
  47. end
  48.  
  49. local function down()
  50.   while not turtle.down() do
  51.     turtle.digDown()
  52.   end
  53. end
  54.  
  55. local function put(p)
  56.   turtle.select(1)
  57.   while turtle.getItemCount(1) < 2 do
  58.     for x = 2, 16 do
  59.       turtle.select(x)
  60.       if turtle.compareTo(1) then
  61.         turtle.transferTo(1)
  62.       end
  63.     end
  64.     sleep(1)
  65.     turtle.select(1)
  66.   end
  67.   if p == nil then
  68.     while not turtle.place() do
  69.       turtle.dig()
  70.     end
  71.   elseif p == up then
  72.     while not turtle.placeUp() do
  73.       turtle.digUp()
  74.     end
  75.   elseif p == down then
  76.     while not turtle.placeDown() do
  77.       turtle.digDown()
  78.     end
  79.   end
  80. end
  81.  
  82. local function wside()
  83.   put(down)
  84.   for x = 1, ar[1]-1 do
  85.     go()
  86.     put(down)
  87.   end
  88.   for x = 1, ar[1]-1 do
  89.     back()
  90.   end
  91. end
  92.  
  93. local function lside()
  94.   for x = 1, ar[2]-1 do
  95.     wside()
  96.     turtle.turnRight()
  97.     go()
  98.     turtle.turnLeft()
  99.   end
  100.   put(down)
  101.   for x = 1, ar[1]-1 do
  102.     go()
  103.     put(down)
  104.   end
  105. end
  106.  
  107. local function wall()
  108.   turtle.turnLeft()
  109.   for x = 1, ar[2]-1 do
  110.     for i = 1, ar[3]-2 do
  111.       up()
  112.       put(down)
  113.     end
  114.     go()
  115.     for j = 1, ar[3]-2 do
  116.       down()
  117.     end
  118.   end
  119.   for x = 1, ar[3]-2 do
  120.     up()
  121.     put(down)
  122.   end
  123.   turtle.turnLeft() -- at top left
  124.   go()
  125.   for x = 1, ar[3]-2 do
  126.     down()
  127.   end
  128.   for x = 1, ar[1]-2 do
  129.     for i = 1, ar[3]-2 do
  130.       up()
  131.       put(down)
  132.     end
  133.     go()
  134.     for j = 1, ar[3]-2 do
  135.       down()
  136.     end
  137.   end
  138.   turtle.turnLeft() -- at bottom left
  139.   for x = 1, ar[2]-1 do
  140.     for i = 1, ar[3]-2 do
  141.       up()
  142.       put(down)
  143.     end
  144.     go()
  145.     for j = 1, ar[3]-2 do
  146.       down()
  147.     end
  148.   end
  149.   turtle.turnLeft() -- at bottom right
  150.   for x = 1, ar[1]-2 do
  151.     for i = 1, ar[3]-2 do
  152.       up()
  153.       put(down)
  154.     end
  155.     go()
  156.     for j = 1, ar[3]-2 do
  157.       down()
  158.     end
  159.   end
  160.   for x = 1, ar[3]-2 do
  161.     up()
  162.     put(down)
  163.   end -- wall completed
  164.   turtle.turnLeft()
  165.   for x = 1, ar[2]-1 do
  166.     go()
  167.   end
  168.   turtle.turnLeft()
  169.   for x = 1, ar[1]-2 do
  170.     go()
  171.   end
  172.   turtle.turnLeft()
  173.   turtle.turnLeft()
  174. end -- position in S facing N
  175.  
  176. lside()
  177. wall()
  178. up()
  179. lside()
  180.  
  181. back()
  182. turtle.turnLeft()
  183. down()
  184. down()
  185. put(up)
  186. go()
  187. turtle.turnLeft()
  188. turtle.turnLeft()
  189. put()
  190. turtle.turnLeft()
  191. turtle.turnLeft()
  192.  
  193. local function lclear()
  194.   for x = 1, ar[2]-3 do
  195.     go()
  196.   end
  197.   for x = 1, ar[2]-3 do
  198.     back()
  199.   end
  200. end
  201.  
  202. local function hclear()
  203.   for x = 1, ar[3]-3 do
  204.     lcear()
  205.     down()
  206.   end
  207.   lclear()
  208.   for x = 1, ar[3]-3 do
  209.     up()
  210.   end
  211. end
  212.  
  213. local function empty()
  214.   for x = 1, ar[1]-3 do
  215.     hclear()
  216.     turtle.turnLeft()
  217.     go()
  218.     turtle.turnLeft()
  219.   end
  220.   hclear()
  221. end
  222.  
  223. empty()
  224. for x = 1, ar[3]-4 do
  225.   down()
  226. end
  227. turtle.turnLeft()
  228. go()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement