Guest User

Untitled

a guest
Jul 6th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local depth = 0
  2. local pile = 2
  3.  
  4. local function tryDown()
  5.     if not turtle.down() then
  6.         if not turtle.digDown() then
  7.             return false
  8.         end
  9.         if not turtle.down() then
  10.             return false
  11.         end
  12.     end
  13.     depth = depth + 1
  14.     return true
  15. end
  16.  
  17. local function tryUp()
  18.     if not turtle.up() then
  19.         if not turtle.digUp() then
  20.             return false
  21.         end
  22.         if not turtle.up() then
  23.             return false
  24.         end
  25.     end
  26.     depth = depth - 1
  27.     return true
  28. end
  29.  
  30. local function tryForward()
  31.     if not turtle.forward() then
  32.         if not turtle.dig() then
  33.             return false
  34.         end
  35.         if not turtle.forward() then
  36.             return false
  37.         end
  38.     end
  39.     return true
  40. end
  41.  
  42. local function tryBack()
  43.     if not turtle.back() then
  44.         turtle.turnLeft()
  45.         turtle.turnLeft()
  46.         if not turtle.dig() then
  47.             turtle.turnLeft()
  48.             turtle.turnLeft()
  49.             return false
  50.         end
  51.         turtle.turnLeft()
  52.         turtle.turnLeft()
  53.         if not turtle.back() then
  54.             return false
  55.         end
  56.     end
  57.     return true
  58. end
  59.  
  60. local function getResources()
  61.     return turtle.getItemCount(2)+turtle.getItemCount(3)+turtle.getItemCount(4)+turtle.getItemCount(5)+turtle.getItemCount(6) - 5
  62. end
  63.  
  64. local function diveForResources()
  65.     if getResources() > 64 * 3 then
  66.         return false
  67.     end
  68.  
  69.     while tryDown() do
  70.     end
  71.  
  72.     while depth > 0 do
  73.         tryUp()
  74.         if depth < 3 and turtle.getItemCount(1) > 1 then
  75.             turtle.select(1)
  76.             turtle.placeDown()
  77.         end
  78.     end
  79.     return true
  80. end
  81.  
  82. local function towerLayer()
  83.     turtle.select(pile)
  84.     while turtle.getItemCount(pile) <= 10 do
  85.         pile = pile + 1
  86.         turtle.select(pile)
  87.     end
  88.     if (pile > 6) then
  89.         return false
  90.     end
  91.     tryForward()
  92.     for n = 1,4 do
  93.         turtle.place()
  94.         turtle.turnRight()
  95.         tryForward()
  96.         turtle.place()
  97.         turtle.turnLeft()
  98.         turtle.place()
  99.         tryBack()
  100.         turtle.turnRight()
  101.     end
  102.     tryBack()
  103.     return true;
  104. end
  105.  
  106. local function createTower()
  107.     diveForResources()
  108.     for n = 1,4 do
  109.         tryForward()
  110.         diveForResources()
  111.         turtle.back()
  112.         turtle.turnRight()
  113.     end
  114.     pile = 2
  115.     while towerLayer() do
  116.         tryUp()
  117.     end
  118.     while depth > 0 do
  119.         tryDown()
  120.     end
  121. end
  122.  
  123. createTower();
Add Comment
Please, Sign In to add comment