coaster3000

pillar

May 20th, 2013
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.73 KB | None | 0 0
  1. local deep = 0
  2. local fuelNeeded = deep
  3. local tArgs = { ... }
  4. function surface()
  5.   while deep > 0 do
  6.     if turtle.up() then
  7.       deep = deep - 1
  8.       for i=2,16 do
  9.         if turtle.getItemCount(i) > 0 then
  10.           turtle.select(i)
  11.           local aok = true
  12.           local b = 0
  13.           while aok do
  14.             if turtle.placeDown() then
  15.               aok = false
  16.             else
  17.               b =b + 1  
  18.             end
  19.             if b > 50 then
  20.               aok = false
  21.             end
  22.           end
  23.           break
  24.         end
  25.       end
  26.       turtle.select(1)
  27.      
  28.     else
  29.       local bm = 0
  30.       while turtle.getFuelLevel < 80 do
  31.         print("Turtle is refueling...")
  32.         turtle.select(1)
  33.         turtle.refuel(1)
  34.         bm = bm + 1
  35.         if bm > 10 then
  36.           break
  37.         end
  38.       end
  39.     end
  40.   end
  41. end
  42.  
  43. function dig()
  44.   if turtle.digDown() then
  45.     if not turtle.down() then
  46.       local t = false
  47.       for i=0,40 do
  48.         if turtle.down() then
  49.           t = true
  50.           break
  51.         end
  52.       end
  53.       if not t then
  54.         print("Turtle is stuck...")
  55.         return
  56.       end
  57.     end
  58.   end
  59. end
  60.  
  61. function run(limit)
  62.   local ok = true
  63.   while ok do
  64.     fuelNeeded = deep
  65.     fuelNeeded = fuelNeeded + 80
  66.     if turtle.getFuelLevel() < fuelNeeded then
  67.       turtle.select(1)
  68.       if turtle.getItemCount(1) > 0 then
  69.         turtle.refuel(1)
  70.       else
  71.         surface()
  72.         ok = false
  73.         error("Ran short of fuel")
  74.       end
  75.     else
  76.       if deep > tonumber(limit) then
  77.         ok = false
  78.         surface()
  79.       else
  80.         dig()
  81.       end
  82.     end
  83.   end
  84. end
  85.  
  86. if #tArgs > 0 then
  87.   run(tonumber(tArgs[0]))
  88. else
  89.   run(256)
  90. end
Advertisement
Add Comment
Please, Sign In to add comment