Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local SLOT_COUNT = 16
- local d = "north"
- local width, depth, height = 10, 10, 1
- if (#arg == 2) then
- width = tonumber(arg[1])
- depth = tonumber(arg[2])
- else
- print('No arguments given using defaults 10 x 10') -- asks for number input
- end
- DROPPED_ITEMS = { -- Gets items to drop
- "minecraft:stone",
- "minecraft:dirt",
- "minecraft:cobblestone",
- "minecraft:diorite",
- "minecraft:andesite",
- "minecraft:granite",
- "minecraft:sand",
- "minecraft:gravel",
- "minecraft:redstone",
- "minecraft:lapis_lazuli",
- "minecraft:flint",
- "railcraft:ore_metal",
- "extrautils2:ingredients",
- "minecraft:dye",
- "thaumcraft:nugget",
- "thaumcraft:crystal_essence",
- "thermalfoundation:material",
- "projectred-core:resource_item",
- "thaumcraft:ore_cinnabar",
- "deepresonance:resonating_ore",
- "forestry:apatite",
- "quark:jasper",
- "quark:cobbled_deepslate",
- "create:gabbro_cobblestone",
- "create:scoria",
- "create:scoria_cobblestone",
- "quark:slate",
- "undergarden:deepsoil",
- "undergarden:depthrock",
- "quark:marble",
- "astralsorcery:marble_raw",
- "create:limestone_cobblestone",
- "create:weathered_limestone_cobblestone",
- "emendatusenigmatica:fluorite_gem",
- "extcaves:lavastone",
- "thermal:cinnabar",
- "tetra:geode",
- "mana-and-artifice:vinteum_ore",
- "minecraft:cobbled_deepslate",
- "twigs:rhyolite",
- "minecraft:tuff",
- "blockus:bluestone",
- "blockus:viridite",
- "blockus:marble",
- "bluckus:limestone",
- "minecraft:raw_copper",
- "lightestlamp:glow_lichen_fiber",
- "soul_ice:lightstone"
- }
- function dropItems() -- drops items
- print("Purging Inventory...")
- for slot = 1, SLOT_COUNT, 1 do
- local item = turtle.getItemDetail(slot) --gets details on item, if it's = to items to drop it will drop items
- if(item ~= nil) then
- for filterIndex = 1, #DROPPED_ITEMS, 1 do
- if(item["name"] == DROPPED_ITEMS[filterIndex]) then
- print("Dropping - " .. item["name"])
- turtle.select(slot)
- turtle.dropDown()
- end
- end
- end
- end
- end
- function manageInventory()
- dropItems()
- turtle.digUp()
- turtle.digDown()
- end
- function checkFuel()
- turtle.select(1)
- if(turtle.getFuelLevel() < 50) then
- print("Attempting Refuel...")
- for slot = 1, SLOT_COUNT, 1 do
- turtle.select(slot)
- if(turtle.refuel(1)) then
- return true
- end
- end
- return false
- else
- return true
- end
- end
- function DigUp()
- while(turtle.detectUp()) do
- turtle.digUp()
- turtle.digDown()
- turtle.dig()
- end
- end
- function DigDown()
- while(turtle.detectDown()) do
- turtle.digUp()
- turtle.digDown()
- turtle.dig()
- end
- end
- function Dig()
- while(turtle.detect()) do
- turtle.digUp()
- turtle.digDown()
- turtle.dig()
- end
- end
- function detectAndDig()
- Dig()
- DigDown()
- DigUp()
- end
- function forward()
- detectAndDig()
- turtle.forward()
- end
- function rightTurn()
- turtle.turnRight()
- detectAndDig()
- turtle.forward()
- turtle.turnRight()
- detectAndDig()
- end
- function leftTurn()
- turtle.turnLeft()
- detectAndDig()
- turtle.forward()
- turtle.turnLeft()
- detectAndDig()
- end
- function flipDirection()
- if(d == "north") then
- d = "south"
- elseif(d == "south") then
- d = "north"
- elseif(d == "west") then
- d = "east"
- elseif(d == "east") then
- d = "west"
- end
- end
- function turnAround(tier)
- if(tier % 2 == 1) then
- if(d == "north" or d == "east") then
- rightTurn()
- elseif(d == "south" or d == "west") then
- leftTurn()
- end
- else
- if(d == "north" or d == "east") then
- leftTurn()
- elseif(d == "south" or d == "west") then
- rightTurn()
- end
- end
- flipDirection()
- end
- function start() --Function order loop
- for tier = 1, height, 1 do
- for col = 1, width, 1 do
- for row = 1, depth - 1, 1 do
- if(not checkFuel()) then
- print("Turtle is out of fuel, Powering Down...")
- return
- end
- forward()
- print(string.format("Row: %d Col: %d", row, col))
- end
- if(col ~= width) then
- turnAround(tier)
- end
- manageInventory()
- end
- end
- end
- start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement