Advertisement
Birog

BigTree

Dec 17th, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- pk6NUgbg
  2. --local tArgs = { ... }
  3. --if #tArgs ~= 1 then
  4. --  print( "Usage: tunnel <length>" )
  5. --  return
  6. --end
  7. term.clear()
  8. print( " Diese Programm dient zum Faellen eine Mammuts Baum")
  9. print()
  10. write( " Wie hoch ist der Baum ? ")
  11. length=io.read()
  12. print()
  13. print( " Wir gehen "..length.." Bloecke hoch um den Baum zu faellen.")
  14.  
  15. -- Mine in a quarry pattern until we hit something we can't dig
  16. --local length = tonumber( tArgs[1] )
  17. --if length < 1 then
  18. --  print( "Tunnel length must be positive" )
  19. --  return
  20. --end
  21.    
  22. local depth = length
  23. local collected = 0
  24.  
  25. local function collect()
  26.     collected = collected + 1
  27.     if math.fmod(collected, 25) == 0 then
  28.         print( "Mined "..collected.." items." )
  29.     end
  30. end
  31.  
  32. local function tryDig()
  33.     while turtle.detect() do
  34.         if turtle.dig() then
  35.             collect()
  36.             sleep(0.5)
  37.         else
  38.             return false
  39.         end
  40.     end
  41.     return true
  42. end
  43.  
  44. local function tryDigUp()
  45.     while turtle.detectUp() do
  46.         if turtle.digUp() then
  47.             collect()
  48.             sleep(0.5)
  49.         else
  50.             return false
  51.         end
  52.     end
  53.     return true
  54. end
  55.  
  56. local function refuel()
  57.     local fuelLevel = turtle.getFuelLevel()
  58.     if fuelLevel == "unlimited" or fuelLevel > 0 then
  59.         return
  60.     end
  61.    
  62.     local function tryRefuel()
  63.         for n=1,16 do
  64.             if turtle.getItemCount(n) > 0 then
  65.                 turtle.select(n)
  66.                 if turtle.refuel(1) then
  67.                     turtle.select(1)
  68.                     return true
  69.                 end
  70.             end
  71.         end
  72.         turtle.select(1)
  73.         return false
  74.     end
  75.    
  76.     if not tryRefuel() then
  77.         print( "Add more fuel to continue." )
  78.         while not tryRefuel() do
  79.             sleep(1)
  80.         end
  81.         print( "Resuming Tunnel." )
  82.     end
  83. end
  84.  
  85. local function tryUp()
  86.     refuel()
  87.     while not turtle.up() do
  88.         if turtle.detectUp() then
  89.             if not tryDigUp() then
  90.                 return false
  91.             end
  92.         elseif turtle.attackUp() then
  93.             collect()
  94.         else
  95.             sleep( 0.5 )
  96.         end
  97.     end
  98.     return true
  99. end
  100.  
  101. local function tryDown()
  102.     refuel()
  103.     while not turtle.down() do
  104.         if turtle.detectDown() then
  105.             if not turtle.digDown() then
  106.                 return false
  107.             end
  108.         elseif turtle.attackDown() then
  109.             collect()
  110.         else
  111.             sleep( 0.5 )
  112.         end
  113.     end
  114.     return true
  115. end
  116.  
  117. local function tryForward()
  118.     refuel()
  119.     while not turtle.forward() do
  120.         if turtle.detect() then
  121.             if not tryDig() then
  122.                 return false
  123.             end
  124.         elseif turtle.attack() then
  125.             collect()
  126.         else
  127.             sleep( 0.5 )
  128.         end
  129.     end
  130.     return true
  131. end
  132.  
  133.  
  134. print( " Baum faellen..." )
  135. j=0
  136. for nu=1,length do
  137.     tryUp()
  138. end
  139. for n=1,length do
  140.     pro = 100/length*n
  141.     for Flaeche=1,6 do
  142.         for go1=1,12 do
  143.             tryDig()
  144.             tryForward()
  145.         end
  146.         turtle.turnRight()
  147. --      print("1")
  148.         tryDig()
  149. --      print("2")
  150.         tryForward()
  151. --      print("3")
  152.         turtle.turnRight()
  153. --      print("4")
  154.         for go2=1,12 do
  155.             tryDig()
  156.             tryForward()
  157.         end
  158.         turtle.turnLeft()
  159.         tryDig()
  160.         tryForward()
  161.         turtle.turnLeft()
  162.     end
  163.     for go3=1,12 do
  164.         tryDig()
  165.         tryForward()
  166.     end
  167.     turtle.turnLeft()
  168.     turtle.turnLeft()
  169.     tryDown()
  170.     term.setCursorPos(1,6)
  171.     term.clearLine()
  172.     print(" Es sind bereits "..pro.." Prozent abgeschlossen")
  173. end
  174. --if n<length then
  175. --  if not tryDown() then
  176. --      print( "Aborting Tunnel." )
  177. --      break
  178. --  end
  179. --else
  180. --      print( "Tunnel complete." )
  181. --end
  182.  
  183.  
  184. print( "Tunnel complete." )
  185. --print( "Mined "..collected.." items total." )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement