Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local blacklist = {
- "minecraft:stone",
- "minecraft:gravel",
- "minecraft:dirt",
- "minecraft:grass",
- "minecraft:cobblestone",
- "minecraft:lava",
- "minecraft:flowing_lava",
- "minecraft:water",
- "minecraft:flowing_water",
- "chisel:marble",
- "chisel:granite",
- "chisel:diorite",
- "chisel:andesite",
- "ProjRed|Exploration:projectred.exploration.stone"
- }
- function statusScreen(level)
- term.clear()
- term.setCursorPos(1, 1)
- print("Fuel: " .. (turtle.getFuelLevel() / turtle.getFuelLimit() * 100) .. "%")
- print("Depth of search: " .. level .. "/256")
- end
- function mineOre(level)
- level = level + 1
- statusScreen(level)
- local up = mineUp()
- local front = mineFront()
- local down = mineDown()
- turtle.turnLeft()
- local left = mineFront()
- turtle.turnLeft()
- local back = mineFront()
- turtle.turnLeft()
- local right = mineFront()
- if right then
- while not turtle.forward() do
- turtle.attack()
- turtle.dig()
- end
- mineOre(level)
- while not turtle.back() do
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.attack()
- turtle.dig()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- end
- if back then
- turtle.turnRight()
- while not turtle.forward() do
- turtle.attack()
- turtle.dig()
- end
- mineOre(level)
- while not turtle.back() do
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.attack()
- turtle.dig()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- turtle.turnRight()
- if left then
- while not turtle.forward() do
- turtle.attack()
- turtle.dig()
- end
- mineOre(level)
- while not turtle.back() do
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.attack()
- turtle.dig()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- end
- turtle.turnRight()
- if front then
- while not turtle.forward() do
- turtle.attack()
- turtle.dig()
- end
- mineOre(level)
- while not turtle.back() do
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.attack()
- turtle.dig()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- end
- else
- turtle.turnLeft()
- if front then
- while not turtle.forward() do
- turtle.attack()
- turtle.dig()
- end
- mineOre(level)
- while not turtle.back() do
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.attack()
- turtle.dig()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- end
- if left then
- turtle.turnLeft()
- while not turtle.forward() do
- turtle.attack()
- turtle.dig()
- end
- mineOre(level)
- while not turtle.back() do
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.attack()
- turtle.dig()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- turtle.turnRight()
- end
- end
- if up then
- while not turtle.up() do
- turtle.attackUp()
- turtle.digUp()
- end
- mineOre(level)
- while not turtle.down() do
- turtle.attackDown()
- turtle.digDown()
- end
- end
- if down then
- while not turtle.down() do
- turtle.attackDown()
- turtle.digDown()
- end
- mineOre(level)
- while not turtle.up() do
- turtle.attackUp()
- turtle.digUp()
- end
- end
- statusScreen(level)
- end
- function mineFront()
- local success, block = turtle.inspect()
- local shouldMine = success and (blacklist[block.name] == nil)
- if shouldMine then
- turtle.dig()
- end
- return shouldMine
- end
- function mineDown()
- local success, block = turtle.inspectDown()
- local shouldMine = success and (blacklist[block.name] == nil)
- if shouldMine then
- turtle.digDown()
- end
- return shouldMine
- end
- function mineUp()
- local success, block = turtle.inspectUp()
- local shouldMine = success and (blacklist[block.name] == nil)
- if shouldMine then
- turtle.digUp()
- end
- return shouldMine
- end
- function set(list)
- local set = {}
- for _, l in ipairs(list) do set[l] = true end
- return set
- end
- blacklist = set(blacklist)
- mineOre(0)
Advertisement
Add Comment
Please, Sign In to add comment