Advertisement
NekoLogi

miner_v2.lua

Oct 3rd, 2022 (edited)
267
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.23 KB | Source Code | 0 0
  1. function start()
  2.     -- 1 = Height | 2 = Length | 3 = Rows | 4 = Rows before dump
  3.     local input = get_input()
  4.     local next_dump = input[4]
  5.     local current_row = 1
  6.    
  7.     for r = 1, input[3] do
  8.         term.clear()
  9.         print("Digging line " .. r .. "...")
  10.         dig_line(input[2], input[1])
  11.         if r < input[3] then
  12.             next_row(input[1])
  13.         end
  14.         if r == next_dump and r ~= input[3] then
  15.             next_dump = next_dump + input[4]
  16.            
  17.             term.clear()
  18.             print("Dumping storage...")
  19.             reset_row(r)
  20.             dump_storage()
  21.             return_to_row(r)
  22.         end
  23.  
  24.         current_row = r
  25.     end
  26.     reset_row(current_row - 1)
  27.     dump_storage()
  28. end
  29.  
  30. function dump_storage()
  31.     turtle.turnLeft()
  32.     turtle.turnLeft()
  33.     for i = 1, 16 do
  34.         turtle.select(i)
  35.         turtle.drop()
  36.     end
  37.     turtle.turnLeft()
  38.     turtle.turnLeft()
  39. end
  40.  
  41. function return_to_row(rows)
  42.     turtle.turnLeft()
  43.     for r = 1, rows do
  44.         while not turtle.forward() do
  45.             turtle.dig()
  46.         end
  47.     end
  48.     turtle.turnRight()
  49. end
  50.  
  51. function reset_row(current_row)
  52.     turtle.turnRight()
  53.     for r = 1, current_row do
  54.         while not turtle.forward() do
  55.             turtle.dig()
  56.         end
  57.     end
  58.     turtle.turnLeft()
  59. end
  60.  
  61. function get_input()
  62.     term.clear()
  63.     io.write("Line starts on the next block from the turtle.")
  64.     io.write("Chest needs to be behind the turtle.")
  65.     io.write("The turtle mines from right to left.")
  66.     io.write("Enter to continue...")
  67.     io.read()
  68.     term.clear()
  69.  
  70.     io.write("Enter height: ")
  71.     local height = tonumber(io.read())
  72.     term.clear()
  73.     io.write("Enter length: ")
  74.     local length = tonumber(io.read())
  75.     term.clear()
  76.     io.write("Enter rows: ")
  77.     local rows = tonumber(io.read())
  78.     term.clear()
  79.     io.write("Enter storage dumped (rows): ")
  80.     local rows_before_dump = tonumber(io.read())
  81.     term.clear()
  82.  
  83.     return { height, length, rows, rows_before_dump }
  84. end
  85.  
  86. function dig_line(length, height)
  87.     -- Start next line.
  88.     for l = 1, length do
  89.         while not turtle.forward() do
  90.             turtle.dig()
  91.         end
  92.         -- Dig up till max. height.
  93.         for h = 1, height do
  94.             while not turtle.up() do
  95.                 turtle.digUp()
  96.             end
  97.         end
  98.         -- reset height.
  99.         for h = 1, height do
  100.             while not turtle.down() do
  101.                 turtle.digDown()
  102.             end
  103.         end
  104.     end
  105.     reset_length(length)
  106. end
  107.  
  108. function reset_length(length)
  109.     turtle.turnLeft()
  110.     turtle.turnLeft()
  111.     for l = 1, length do
  112.         while not turtle.forward() do
  113.             turtle.dig()
  114.         end
  115.     end
  116.     turtle.turnLeft()
  117.     turtle.turnLeft()
  118. end
  119.  
  120. function next_row(height)
  121.     turtle.turnLeft()
  122.     while not turtle.forward() do
  123.         turtle.dig()
  124.     end
  125.     -- Dig up till max. height.
  126.     for h = 1, height do
  127.         while not turtle.up() do
  128.             turtle.digUp()
  129.         end
  130.     end
  131.     -- reset height.
  132.     for h = 1, height do
  133.         while not turtle.down() do
  134.             turtle.digDown()
  135.         end
  136.     end
  137.     turtle.turnRight()
  138. end
  139.  
  140.  
  141. start()
Advertisement
Comments
  • NekoLogi
    2 years
    # Lua 0.13 KB | 0 0
    1. New version of my mining script for ComputerCraft.
    2.  
    3. Chest needs to be behind the turtle.
    4. The turtle mines from right to left.
Add Comment
Please, Sign In to add comment
Advertisement