Advertisement
Guest User

room.lua

a guest
Apr 23rd, 2014
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. DumpChestSlot = 1
  2. FuelChestSlot = 2
  3. GravityWait = 0.5
  4. ItemChestSlot = 3
  5. ItemSlot = 4
  6. SpaceBegin = 5
  7. SpaceEnd = 16
  8.  
  9. Args = {...}
  10. L, W, H = tonumber(Args[1]), tonumber(Args[2]), tonumber(Args[3])
  11.  
  12. function build()
  13.     if turtle.getItemCount(ItemSlot) == 0 then
  14.         turtle.select(ItemChestSlot)
  15.         turtle.placeDown()
  16.         turtle.select(ItemSlot)
  17.         turtle.suckDown()
  18.         turtle.select(ItemChestSlot)
  19.         turtle.digDown()
  20.     end
  21.     if needSpace() then
  22.         turtle.select(DumpChestSlot)
  23.         turtle.placeDown()
  24.         for slot = SpaceBegin, SpaceEnd do
  25.             turtle.select(slot)
  26.             turtle.dropDown()
  27.         end
  28.         turtle.select(DumpChestSlot)
  29.         turtle.digDown()
  30.     end
  31.     turtle.select(ItemSlot)
  32.     return turtle.placeDown()
  33. end
  34.  
  35. function move()
  36.     turtle.select(SpaceBegin)
  37.     while turtle.dig() do
  38.         os.sleep(GravityWait)
  39.     end
  40.     if needFuel() then
  41.         turtle.select(FuelChestSlot)
  42.         turtle.place()
  43.         turtle.suck()
  44.         turtle.refuel()
  45.         turtle.dig()
  46.     end
  47.     return turtle.forward()
  48. end
  49.  
  50. function moveUp()
  51.     turtle.select(SpaceBegin)
  52.     while turtle.digUp() do
  53.         os.sleep(GravityWait)
  54.     end
  55.     if needFuel() then
  56.         turtle.select(FuelChestSlot)
  57.         turtle.placeUp()
  58.         turtle.suckUp()
  59.         turtle.refuel()
  60.         turtle.digUp()
  61.     end
  62.     return turtle.up()
  63. end
  64.  
  65. function needFuel()
  66.     if (turtle.getFuelLimit() == "unlimited") or (turtle.getFuelLevel() > 0) then
  67.         return false
  68.     end
  69.     return true
  70. end
  71.  
  72. function needSpace()
  73.     for slot = SpaceBegin, SpaceEnd do
  74.         if turtle.getItemCount(slot) == 0 then
  75.             return false
  76.         end
  77.     end
  78.     return true
  79. end
  80.  
  81. function surface()
  82.     return (l == 1 or l == L or w == 1 or l == L or h == 1 or h == H)
  83. end
  84.  
  85. for h = 1, H do
  86.     moveUp()
  87.     for w = 1, W do
  88.         for l = 1, L do
  89.             if surface() then
  90.                 build()
  91.             end
  92.             move()
  93.         end
  94.         local turn
  95.         if (w % 2) == 0 then
  96.             turn = turtle.turnRight
  97.         else
  98.             turn = turtle.turnLeft
  99.         end
  100.         turn()
  101.         move()
  102.         turn()
  103.     end
  104.     if (w % 2) == 1 then
  105.         turtle.turnRight()
  106.         turtle.turnRight()
  107.         for l = 1, L do
  108.             move()
  109.         end
  110.     end
  111.     turtle.turnRight()
  112.     for w = 1, W do
  113.         move()
  114.     end
  115.     turtle.turnRight()
  116. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement