addis2123

steps.lua

Nov 27th, 2020 (edited)
542
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if not turtle then
  2.     printError("Requires a Turtle")
  3.     return
  4. end
  5.  
  6. local function tryDig()
  7.     while turtle.detect() do
  8.         if turtle.dig() then
  9.             sleep(0.5)
  10.         else
  11.             return false
  12.         end
  13.     end
  14.     return true
  15. end
  16.  
  17. local function tryDigDown()
  18.     while turtle.detectDown() do
  19.         if turtle.digDown() then
  20.             sleep(0.5)
  21.         else
  22.             return false
  23.         end
  24.     end
  25.     return true
  26. end
  27.  
  28. local function placeStep()
  29.     local function tryBlock()
  30.         for n = 1, 16 do
  31.             if turtle.getItemCount(n) > 0 then
  32.                 turtle.select(n)
  33.                 if turtle.placeDown(1) then
  34.                     turtle.select(1)
  35.                     return true
  36.                 end
  37.             end
  38.         end
  39.         turtle.select(1)
  40.         return false
  41.     end
  42.  
  43.     if not tryBlock() then
  44.         print("Add more Blocks to continue.")
  45.         while not tryBlock() do
  46.             os.pullEvent("turtle_inventory")
  47.         end
  48.         print("Resuming Creation.")
  49.     end
  50. end
  51.  
  52. local function refuel()
  53.     local fuelLevel = turtle.getFuelLevel()
  54.     if fuelLevel == "unlimited" or fuelLevel > 0 then
  55.         return
  56.     end
  57.  
  58.     local function tryRefuel()
  59.         for n = 1, 16 do
  60.             if turtle.getItemCount(n) > 0 then
  61.                 turtle.select(n)
  62.                 if turtle.refuel(1) then
  63.                     turtle.select(1)
  64.                     return true
  65.                 end
  66.             end
  67.         end
  68.         turtle.select(1)
  69.         return false
  70.     end
  71.  
  72.     if not tryRefuel() then
  73.         print("Add more fuel to continue.")
  74.         while not tryRefuel() do
  75.             os.pullEvent("turtle_inventory")
  76.         end
  77.         print("Resuming Tunnel.")
  78.     end
  79. end
  80.  
  81. local function tryDown()
  82.     refuel()
  83.     while not turtle.down() do
  84.         if turtle.detectDown() then
  85.             if not tryDigDown() then
  86.                 return false
  87.             end
  88.         elseif turtle.attackDown() then
  89.             collect()
  90.         else
  91.             sleep(0.5)
  92.         end
  93.     end
  94.     return true
  95. end
  96.  
  97.  
  98. local function tryForward()
  99.     refuel()
  100.     while not turtle.forward() do
  101.         if turtle.detect() then
  102.             if not tryDig() then
  103.                 return false
  104.             end
  105.         elseif turtle.attack() then
  106.             collect()
  107.         else
  108.             sleep(0.5)
  109.         end
  110.     end
  111.     return true
  112. end
  113.  
  114. while not turtle.detectDown() do
  115.     refuel()
  116.     placeStep()
  117.     tryDig()
  118.     tryForward()
  119.     tryDigDown()
  120.     tryDown()
  121. end
RAW Paste Data