Advertisement
NekoLogi

down_miner.lua

Feb 9th, 2025 (edited)
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.65 KB | Source Code | 0 0
  1. local function is_number(a)
  2.     if type(a) == "number" then
  3.         return true
  4.     end
  5.     return false
  6. end
  7.  
  8. local function init()
  9.     if #Args == 0 or #Args == nil then
  10.         print("No starting parameters added!\n")
  11.         print("--down <value> | Default: " .. Down)
  12.         print("--width <value> | Default: " .. Width)
  13.         print("--length <value> | Default: " .. Length)
  14.         print("\n\n Do you still want to start the Turtle with default values?\n\t- Enter: y or n")
  15.  
  16.         local input = tostring(read() or "")
  17.         if input == nil or input:lower() ~= "y" then
  18.             shutdown()
  19.         end
  20.     end
  21.     for i = 1, #Args, 2 do
  22.         if Args[i]:lower() == "--down" then
  23.             if not is_number(Args[i]) then
  24.                 print("value for down is not a number, default: " .. Down .. "\n")
  25.                 break
  26.             end
  27.             Down = tonumber(Args[i + 1])
  28.         elseif Args[i]:lower() == "--length" then
  29.             if not is_number(Args[i]) then
  30.                 print("value for length is not a number, default: " .. Length .. "\n")
  31.                 break
  32.             end
  33.             Length = tonumber(Args[i + 1])
  34.         elseif Args[i]:lower() == "--width" then
  35.             if not is_number(Args[i]) then
  36.                 print("value for width is not a number, default: " .. Width .. "\n")
  37.                 break
  38.             end
  39.             Width = tonumber(Args[i + 1])
  40.         end
  41.     end
  42. end
  43.  
  44. local function next_layer()
  45.     while not turtle.down() do
  46.         turtle.digDown()
  47.     end
  48.     turtle.turnLeft()
  49. end
  50.  
  51. local function dig_width()
  52.     for i = 1, Width, 1 do
  53.         while not turtle.forward() do
  54.             turtle.dig()
  55.         end
  56.     end
  57.     turtle.turnLeft()
  58.     turtle.turnLeft()
  59.     for i = 1, Width, 1 do
  60.         while not turtle.forward() do
  61.             turtle.dig()
  62.         end
  63.     end
  64.     turtle.turnLeft()
  65. end
  66.  
  67. local function next_line()
  68.     while not turtle.forward() do
  69.         turtle.dig()
  70.     end
  71.     turtle.turnLeft()
  72. end
  73.  
  74. local function reset_turtle()
  75.     turtle.turnLeft()
  76.     turtle.turnLeft()
  77.     for i = 1, Length - 1, 1 do
  78.         while not turtle.forward() do
  79.             turtle.dig()
  80.         end
  81.     end
  82.     turtle.turnLeft()
  83.     turtle.turnLeft()
  84. end
  85.  
  86. local function start()
  87.     for i = 1, Down, 1 do
  88.         term.clear()
  89.         print("Current Layer: " .. i)
  90.         next_layer()
  91.         for e = 1, Length, 1 do
  92.             dig_width()
  93.             if e ~= Length then
  94.                 next_line()
  95.             end
  96.         end
  97.         reset_turtle()
  98.     end
  99. end
  100.  
  101. Args = {...}
  102. Down = 3
  103. Length = 10
  104. Width = 10
  105.  
  106. init()
  107. start()
  108.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement