Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local height = 16
- local width = 10
- local depth = 20
- local deposit = "ironchest:diamond_chest"
- local auto_drop = {
- "minecraft:deepslate", "minecraft:gravel",
- "minecraft:tuff", "minecraft:dripstone_block",
- "minecraft:pointed_dripstone", "minecraft:cobbled_deepslate",
- "minecraft:cobblestone", "minecraft:sand"
- }
- local auto_drop_length = table.getn(auto_drop)
- local blacklist = {
- "minecraft:coal_ore", "minecraft:deepslate_coal_ore",
- "minecraft:iron_ore", "minecraft:deepslate_iron_ore",
- "minecraft:copper_ore", "minecraft:deepslate_copper_ore",
- "minecraft:gold_ore", "minecraft:deepslate_gold_ore",
- "minecraft:redstone_ore", "minecraft:deepslate_redstone_ore",
- "minecraft:emerald_ore", "minecraft:deepslate_emerald_ore",
- "minecraft:lapis_lazuli_ore", "minecraft:deepslate_lapis_lazuli_ore",
- "minecraft:diamond_ore", "minecraft:deepslate_diamond_ore",
- "minecraft:nether_gold_ore", "minecraft:nether_quartz_ore",
- "create:zinc_ore", "create:deepslate_zinc_ore",
- "immersiveengineering:bauxite_ore", "immersiveengineering:deepslate_bauxite_ore",
- "immersiveengineering:lead_ore", "immersiveengineering:deepslate_lead_ore",
- "immersiveengineering:silver_ore", "immersiveengineering:deepslate_silver_ore",
- "immersiveengineering:nickel_ore", "immersiveengineering:deepslate_nickel_ore",
- "immersiveengineering:uranium_ore", "immersiveengineering:deepslate_uranium_ore",
- "mekanism:uranium_ore", "mekanism:deepslate_uranium_ore",
- "mekanism:tin_ore", "mekanism:deepslate_tin_ore",
- "mekanism:osmium_ore", "mekanism:deepslate_osmium_ore",
- "mekanism:fluorite_ore", "mekanism:deepslate_fluorite_ore",
- "mekanism:lead_ore", "mekanism:deepslate_lead_ore",
- "thermal:apatite_ore", "thermal:deepslate_apatite_ore",
- "thermal:cinnabar_ore", "thermal:deepslate_cinnabar_ore",
- "thermal:niter_ore", "thermal:deepslate_niter_ore",
- "thermal:sulfur_ore", "thermal:deepslate_sulfur_ore",
- "thermal:tin_ore", "thermal:deepslate_tin_ore",
- "thermal:lead_ore", "thermal:deepslate_lead_ore",
- "thermal:silver_ore", "thermal:deepslate_silver_ore",
- "thermal:nickel_ore", "thermal:deepslate_nickel_ore",
- "undergarden:depthrock_coal_ore", "undergarden:shiverstone_coal_ore",
- "undergarden:depthrock_iron_ore", "undergarden:shiverstone_iron_ore",
- "undergarden:depthrock_gold_ore", "undergarden:shiverstone_gold_ore",
- "undergarden:depthrock_diamond_ore", "undergarden:shiverstone_diamond_ore",
- "undergarden:depthrock_cloggrum_ore", "undergarden:shiverstone_cloggrum_ore",
- "undergarden:shiverstone_froststeel_ore", "undergarden:depthrock_utherium_ore",
- "undergarden:shiverstone_utherium_ore", "undergarden:tremblecrust_utherium_ore",
- "depthrock_regalium_ore", "shiverstone_regalium_ore"}
- local blacklist_length = table.getn(blacklist)
- function fuelCheck()
- local fuelLevel = turtle.getFuelLevel()
- if turtle.getItemCount(1) < 1 then
- print("We are currently waiting to be refueled!")
- local waiting = true
- while waiting do
- if turtle.getItemCount(1) > 0 then
- print("Thank you!")
- waiting = false
- sleep(1)
- end
- end
- end
- if fuelLevel < 100 then
- turtle.select(1)
- turtle.refuel(2)
- print("Refueled.")
- end
- end
- function dropItems()
- local _, data = turtle.inspect()
- if data.name == deposit then
- for i = 1, 16 do
- if i > 1 then
- if turtle.getItemCount(i) > 0 then
- turtle.select(i)
- turtle.drop()
- end
- end
- end
- turtle.select(1)
- end
- end
- function drop_blocks()
- for i = 1, 16 do
- local drop = false
- turtle.select(i)
- for b = 1, auto_drop_length do
- local item = turtle.getItemDetail(i)
- if item ~= nil then
- if item.name == auto_drop[b] then
- turtle.drop()
- end
- end
- end
- if drop then
- turtle.drop()
- end
- end
- turtle.select(1)
- end
- function check_block()
- local _, data = turtle.inspect()
- for i = 1, blacklist_length do
- if data.name == blacklist[i] then
- turtle.dig()
- drop_blocks()
- turtle.digUp()
- end
- end
- end
- function check_block_up()
- local _, data = turtle.inspectUp()
- for i = 1, blacklist_length do
- if data.name == blacklist[i] then
- turtle.digUp()
- drop_blocks()
- end
- end
- end
- function check_block_down()
- local _, data = turtle.inspectDown()
- for i = 1, blacklist_length do
- if data.name == blacklist[i] then
- turtle.digDown()
- drop_blocks()
- end
- end
- end
- function gravel_check()
- local gravel_toggle = false
- while not gravel_toggle do
- os.sleep(0.3)
- local _, data = turtle.inspect()
- if data.name == "minecraft:gravel" or data.name == "minecraft:sand" then
- turtle.dig()
- else
- gravel_toggle = true
- end
- end
- end
- local cur_level = 0
- for h = 1, height do
- if h > 1 then
- for l = 1, cur_level do
- for w = 1, 3 do
- turtle.digDown()
- turtle.down()
- end
- end
- end
- for w = 1, width do
- if w ~= 1 then
- fuelCheck()
- turtle.turnRight()
- for w = 1, 2 do
- gravel_check()
- turtle.dig()
- drop_blocks()
- gravel_check()
- turtle.forward()
- turtle.digDown()
- end
- gravel_check()
- turtle.dig()
- drop_blocks()
- gravel_check()
- turtle.forward()
- turtle.digDown()
- turtle.turnLeft()
- end
- for d = 1, depth do
- fuelCheck()
- gravel_check()
- turtle.dig()
- drop_blocks()
- gravel_check()
- turtle.forward()
- turtle.digDown()
- turtle.turnLeft()
- check_block()
- turtle.turnRight()
- turtle.turnRight()
- check_block()
- turtle.turnLeft()
- check_block_up()
- check_block_down()
- end
- turtle.turnRight()
- turtle.turnRight()
- for d = 1, depth do
- local _, data = turtle.inspect()
- if data.name ~= nil then
- gravel_check()
- turtle.dig()
- gravel_check()
- end
- turtle.forward()
- turtle.digDown()
- end
- turtle.turnRight()
- turtle.turnRight()
- end
- turtle.turnLeft()
- for w = 1, width-1 do
- fuelCheck()
- gravel_check()
- turtle.forward()
- turtle.digDown()
- gravel_check()
- turtle.forward()
- turtle.digDown()
- gravel_check()
- turtle.forward()
- turtle.digDown()
- end
- for l = 1, cur_level do
- turtle.up()
- turtle.up()
- turtle.up()
- end
- turtle.turnLeft()
- dropItems()
- turtle.turnRight()
- turtle.turnRight()
- cur_level = cur_level + 1
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement