Advertisement
agentsix1

Miner

Jun 6th, 2023 (edited)
1,071
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.48 KB | None | 0 0
  1. local height = 16
  2. local width  = 10
  3. local depth  = 20
  4.  
  5. local deposit = "ironchest:diamond_chest"
  6.  
  7. local auto_drop = {
  8.                     "minecraft:deepslate", "minecraft:gravel",
  9.                     "minecraft:tuff", "minecraft:dripstone_block",
  10.                     "minecraft:pointed_dripstone", "minecraft:cobbled_deepslate",
  11.                     "minecraft:cobblestone", "minecraft:sand"
  12.                   }
  13.  
  14. local auto_drop_length = table.getn(auto_drop)
  15.  
  16. local blacklist = {
  17.                         "minecraft:coal_ore", "minecraft:deepslate_coal_ore",
  18.                         "minecraft:iron_ore", "minecraft:deepslate_iron_ore",
  19.                         "minecraft:copper_ore", "minecraft:deepslate_copper_ore",
  20.                         "minecraft:gold_ore", "minecraft:deepslate_gold_ore",
  21.                         "minecraft:redstone_ore", "minecraft:deepslate_redstone_ore",
  22.                         "minecraft:emerald_ore", "minecraft:deepslate_emerald_ore",
  23.                         "minecraft:lapis_lazuli_ore", "minecraft:deepslate_lapis_lazuli_ore",
  24.                         "minecraft:diamond_ore", "minecraft:deepslate_diamond_ore",
  25.                         "minecraft:nether_gold_ore", "minecraft:nether_quartz_ore",
  26.                         "create:zinc_ore", "create:deepslate_zinc_ore",
  27.                         "immersiveengineering:bauxite_ore", "immersiveengineering:deepslate_bauxite_ore",
  28.                         "immersiveengineering:lead_ore", "immersiveengineering:deepslate_lead_ore",
  29.                         "immersiveengineering:silver_ore", "immersiveengineering:deepslate_silver_ore",
  30.                         "immersiveengineering:nickel_ore", "immersiveengineering:deepslate_nickel_ore",
  31.                         "immersiveengineering:uranium_ore", "immersiveengineering:deepslate_uranium_ore",
  32.                         "mekanism:uranium_ore", "mekanism:deepslate_uranium_ore",
  33.                         "mekanism:tin_ore", "mekanism:deepslate_tin_ore",
  34.                         "mekanism:osmium_ore", "mekanism:deepslate_osmium_ore",
  35.                         "mekanism:fluorite_ore", "mekanism:deepslate_fluorite_ore",
  36.                         "mekanism:lead_ore", "mekanism:deepslate_lead_ore",
  37.                         "thermal:apatite_ore", "thermal:deepslate_apatite_ore",
  38.                         "thermal:cinnabar_ore", "thermal:deepslate_cinnabar_ore",
  39.                         "thermal:niter_ore", "thermal:deepslate_niter_ore",
  40.                         "thermal:sulfur_ore", "thermal:deepslate_sulfur_ore",
  41.                         "thermal:tin_ore", "thermal:deepslate_tin_ore",
  42.                         "thermal:lead_ore", "thermal:deepslate_lead_ore",
  43.                         "thermal:silver_ore", "thermal:deepslate_silver_ore",
  44.                         "thermal:nickel_ore", "thermal:deepslate_nickel_ore",
  45.                         "undergarden:depthrock_coal_ore", "undergarden:shiverstone_coal_ore",
  46.                         "undergarden:depthrock_iron_ore", "undergarden:shiverstone_iron_ore",
  47.                         "undergarden:depthrock_gold_ore", "undergarden:shiverstone_gold_ore",
  48.                         "undergarden:depthrock_diamond_ore", "undergarden:shiverstone_diamond_ore",
  49.                         "undergarden:depthrock_cloggrum_ore", "undergarden:shiverstone_cloggrum_ore",
  50.                         "undergarden:shiverstone_froststeel_ore", "undergarden:depthrock_utherium_ore",
  51.                         "undergarden:shiverstone_utherium_ore", "undergarden:tremblecrust_utherium_ore",
  52.                         "depthrock_regalium_ore", "shiverstone_regalium_ore"}
  53.                        
  54. local blacklist_length = table.getn(blacklist)
  55.    
  56. function fuelCheck()
  57.     local fuelLevel = turtle.getFuelLevel()
  58.     if turtle.getItemCount(1) < 1 then
  59.         print("We are currently waiting to be refueled!")
  60.         local waiting = true
  61.         while waiting do
  62.             if turtle.getItemCount(1) > 0 then
  63.                 print("Thank you!")
  64.                 waiting = false
  65.                 sleep(1)
  66.             end
  67.         end
  68.     end
  69.     if fuelLevel < 100 then
  70.         turtle.select(1)
  71.         turtle.refuel(2)
  72.         print("Refueled.")
  73.     end
  74. end
  75.  
  76. function dropItems()
  77.     local _, data = turtle.inspect()
  78.         if data.name == deposit then
  79.         for i = 1, 16 do
  80.             if i > 1 then
  81.                 if turtle.getItemCount(i) > 0 then
  82.                     turtle.select(i)
  83.                     turtle.drop()
  84.                 end
  85.             end
  86.         end
  87.         turtle.select(1)
  88.     end
  89. end
  90.  
  91. function drop_blocks()
  92.     for i = 1, 16 do
  93.         local drop = false
  94.         turtle.select(i)
  95.         for b = 1, auto_drop_length do
  96.             local item = turtle.getItemDetail(i)
  97.             if item ~= nil then
  98.                 if item.name == auto_drop[b] then
  99.                     turtle.drop()
  100.                 end
  101.             end
  102.         end
  103.         if drop then
  104.             turtle.drop()
  105.         end
  106.     end
  107.    
  108.     turtle.select(1)
  109. end
  110.  
  111. function check_block()
  112.     local _, data = turtle.inspect()
  113.     for i = 1, blacklist_length do
  114.         if data.name == blacklist[i] then
  115.             turtle.dig()
  116.             drop_blocks()
  117.             turtle.digUp()
  118.         end
  119.     end
  120. end
  121.  
  122. function check_block_up()
  123.     local _, data = turtle.inspectUp()
  124.     for i = 1, blacklist_length do
  125.         if data.name == blacklist[i] then
  126.             turtle.digUp()
  127.             drop_blocks()
  128.         end
  129.     end
  130. end
  131.  
  132. function check_block_down()
  133.     local _, data = turtle.inspectDown()
  134.     for i = 1, blacklist_length do
  135.         if data.name == blacklist[i] then
  136.             turtle.digDown()
  137.             drop_blocks()
  138.         end
  139.     end
  140. end
  141.  
  142. function gravel_check()
  143.     local gravel_toggle = false
  144.     while not gravel_toggle do
  145.         os.sleep(0.3)
  146.         local _, data = turtle.inspect()   
  147.         if data.name == "minecraft:gravel" or data.name == "minecraft:sand" then
  148.             turtle.dig()
  149.         else
  150.             gravel_toggle = true
  151.         end
  152.     end
  153. end
  154.  
  155. local cur_level = 0
  156. for h = 1, height do
  157.     if h > 1 then
  158.         for l = 1, cur_level do
  159.             for w = 1, 3 do
  160.                 turtle.digDown()
  161.                 turtle.down()
  162.             end
  163.         end
  164.     end
  165.     for w = 1, width do
  166.         if w ~= 1 then
  167.             fuelCheck()
  168.             turtle.turnRight()
  169.             for w = 1, 2 do
  170.                 gravel_check()
  171.                 turtle.dig()
  172.                 drop_blocks()
  173.                 gravel_check()
  174.                 turtle.forward()
  175.                 turtle.digDown()
  176.             end
  177.             gravel_check()
  178.             turtle.dig()
  179.             drop_blocks()
  180.             gravel_check()
  181.             turtle.forward()
  182.             turtle.digDown()
  183.             turtle.turnLeft()
  184.         end
  185.         for d = 1, depth do
  186.             fuelCheck()
  187.             gravel_check()
  188.             turtle.dig()
  189.             drop_blocks()
  190.             gravel_check()
  191.             turtle.forward()
  192.             turtle.digDown()
  193.             turtle.turnLeft()
  194.             check_block()
  195.             turtle.turnRight()
  196.             turtle.turnRight()
  197.             check_block()
  198.             turtle.turnLeft()
  199.             check_block_up()
  200.             check_block_down()
  201.         end
  202.        
  203.         turtle.turnRight()
  204.         turtle.turnRight()
  205.         for d = 1, depth do
  206.             local _, data = turtle.inspect()   
  207.             if data.name ~= nil then
  208.                 gravel_check()
  209.                 turtle.dig()
  210.                 gravel_check()
  211.             end
  212.             turtle.forward()
  213.             turtle.digDown()
  214.         end
  215.        
  216.         turtle.turnRight()
  217.         turtle.turnRight()
  218.     end
  219.     turtle.turnLeft()
  220.     for w = 1, width-1 do
  221.         fuelCheck()
  222.         gravel_check()
  223.         turtle.forward()
  224.         turtle.digDown()
  225.         gravel_check()
  226.         turtle.forward()
  227.         turtle.digDown()
  228.         gravel_check()
  229.         turtle.forward()
  230.         turtle.digDown()
  231.     end
  232.    
  233.     for l = 1, cur_level do
  234.         turtle.up()
  235.         turtle.up()
  236.         turtle.up()
  237.     end
  238.     turtle.turnLeft()
  239.     dropItems()
  240.     turtle.turnRight()
  241.     turtle.turnRight()
  242.     cur_level = cur_level + 1
  243. end
  244.  
Tags: mine
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement