Advertisement
Birog

Treppe_UP

Sep 8th, 2013
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local tArgs = { ... }
  2. if #tArgs ~= 1 then
  3.  print("Usage: Hoehe <high>")
  4.  return
  5. end
  6.  
  7. -- Mine in a quarry pattern until we hit something we can`t dig
  8. local high = tonumber( tArgs[1] )
  9.  if high < 1 then
  10.   print("Treppen hoehe must be positive")
  11.   return
  12.  end
  13.  
  14. local depth = high
  15. local collected = 0
  16. local ll = 0
  17.  
  18. print("Treppen in Fach 15 legen")
  19. print("Fackeln in Fach 14 legen")
  20. print("Steine in Fach 1 legen")
  21. print("Schritte bis Ebene 12 = ",high)
  22. print()
  23. print(" In 10 Sec geht es los")
  24. sleep(10)
  25.  
  26. local function collect()
  27.  collected = collected +1
  28.   if math.fmod(collected, 25) == 0 then
  29.    print("Mined "..collected.." items.")
  30.   end
  31. end
  32.  
  33. local function tryDig()
  34.  while turtle.detect() do
  35.   if turtle.dig() then
  36.    collect()
  37.    sleep(0.5)
  38.   else
  39.    return false
  40.   end
  41.  end
  42.  return true
  43. end
  44.  
  45. local function tryDigDown()
  46.     while turtle.detectDown() do
  47.         if turtle.digDown() then
  48.             collect()
  49.             sleep(0.5)
  50.         else
  51.             return false
  52.         end
  53.     end
  54.     return true
  55. end
  56.  
  57. local function tryDigUp()
  58.     while turtle.detectUp() do
  59.         if turtle.digUp() then
  60.             collect()
  61.             sleep(0.5)
  62.         else
  63.             return false
  64.         end
  65.     end
  66.     return true
  67. end
  68.  
  69. local function refuel()
  70.     local fuelLevel = turtle.getFuelLevel()
  71.     if fuelLevel == "unlimited" or fuelLevel > 0 then
  72.         return
  73.     end
  74.    
  75.     local function tryRefuel()
  76.         for n=1,16 do
  77.             if turtle.getItemCount(n) > 0 then
  78.                 turtle.select(n)
  79.                 if turtle.refuel(1) then
  80.                     turtle.select(1)
  81.                     return true
  82.                 end
  83.             end
  84.         end
  85.         turtle.select(1)
  86.         return false
  87.     end
  88.    
  89.     if not tryRefuel() then
  90.         print( "Add more fuel to continue." )
  91.         while not tryRefuel() do
  92.             sleep(1)
  93.         end
  94.         print( "Resuming Tunnel." )
  95.     end
  96. end
  97.  
  98. local function tryUp()
  99.     refuel()
  100.     while not turtle.up() do
  101.         if turtle.detectUp() then
  102.             if not tryDigUp() then
  103.                 return false
  104.             end
  105.         elseif turtle.attackUp() then
  106.             collect()
  107.         else
  108.             sleep( 0.5 )
  109.         end
  110.     end
  111.     return true
  112. end
  113.  
  114. local function tryDown()
  115.     refuel()
  116.     while not turtle.down() do
  117.         if turtle.detectDown() then
  118.             if not tryDigDown() then
  119.                 return false
  120.             end
  121.         elseif turtle.attackDown() then
  122.             collect()
  123.         else
  124.             sleep( 0.5 )
  125.         end
  126.     end
  127.     return true
  128. end
  129.  
  130. local function tryForward()
  131.     refuel()
  132.     while not turtle.forward() do
  133.         if turtle.detect() then
  134.             if not tryDig() then
  135.                 return false
  136.             end
  137.         elseif turtle.attack() then
  138.             collect()
  139.         else
  140.             sleep( 0.5 )
  141.         end
  142.     end
  143.     return true
  144. end
  145.  
  146. print( "Baue die Treppe...")
  147.  
  148. tryDig()
  149. tryForward()
  150. ll=0
  151.  
  152. for n=1,high do
  153.     tryForward()
  154.     tryUp()
  155.     tryUp()
  156.     tryUp()
  157.     tryDown()
  158.     tryDown()
  159.     ll = ll +1
  160.     if ll == 5 then
  161.         turtle.turnRight()
  162.         tryDig()
  163.         turtle.select(14)
  164.         turtle.place()
  165.         turtle.turnRight()
  166.         turtle.turnRight()
  167.         tryDig()
  168.         turtle.place()
  169.         turtle.turnRight()
  170.         ll = 0
  171.     end
  172. end
  173. if n<high then
  174.     tryDig()
  175.     if not tryForward() then
  176.         print( "Aborting Tunnel." )
  177.     end
  178. else
  179.     print( "Tunnel complete." )
  180. end
  181.  
  182. print( "Mined "..collected.." items total." )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement