Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local dist, width = arg[1], arg[2]
- local spacing, row_num = 6, 1
- local function tryRefuel()
- for n = 1, 16 do
- print("yo", n)
- if turtle.getItemCount(n) > 0 then
- turtle.select(n)
- if turtle.refuel(1) then
- turtle.select(1)
- return true
- end
- end
- end
- turtle.select(1)
- return false
- end
- local function refuel()
- local fuelLevel = turtle.getFuelLevel()
- if fuelLevel == "unlimited" or fuelLevel > 0 then
- return
- end
- if not tryRefuel() then
- print("Add more fuel to continue.")
- while not tryRefuel() do
- os.pullEvent("turtle_inventory")
- end
- print("Resuming Tunnel.")
- end
- end
- function tryDig()
- while turtle.detect() do
- if turtle.dig() then
- sleep(0.5)
- else
- return false
- end
- end
- return true
- end
- function tryDigUp()
- while turtle.detectUp() do
- if turtle.digUp() then
- sleep(0.5)
- else
- return false
- end
- end
- return true
- end
- function tryDigDown()
- while turtle.detectDown() do
- if turtle.digDown() then
- sleep(0.5)
- else
- return false
- end
- end
- return true
- end
- function tryUp()
- refuel()
- while not turtle.up() do
- if turtle.detectUp() then
- if not tryDigUp() then
- return false
- end
- else
- sleep(0.5)
- end
- end
- return true
- end
- function tryDown()
- refuel()
- while not turtle.down() do
- if turtle.detectDown() then
- if not tryDigDown() then
- return false
- end
- else
- sleep(0.5)
- end
- end
- return true
- end
- function tryForward()
- refuel()
- while not turtle.forward() do
- if turtle.detect() then
- if not tryDig() then
- return false
- end
- else
- sleep(0.5)
- end
- end
- return true
- end
- function tryBack()
- refuel()
- if not turtle.back() then
- turnLeft(2)
- local ret = tryForward()
- turnLeft(2)
- return ret
- end
- return true
- end
- function checkIfSlotIsItem(slot, name)
- local item = turtle.getItemDetail(slot)
- if item ~= nil then
- return item["name"] == name
- end
- return false
- end
- function findItem(name)
- for slot = 1, 16 do
- if checkIfSlotIsItem(slot, name) then
- return slot
- end
- end
- return -1
- end
- function checkIfHaveItem(name)
- return findItem(name) ~= -1
- end
- function findEmpty()
- for index = 1, 16 do
- if turtle.getItemCount(index) == 0 then
- return index
- end
- end
- return -1
- end
- function countItems()
- local total = 0
- for index = 1, 16 do
- total = turtle.getItemCount(index) + total
- end
- end
- for w = 1, width do
- if checkIfHaveItem("minecraft:diamond_pickaxe") then
- turtle.select(findItem("minecraft:diamond_pickaxe"))
- turtle.equipRight()
- end
- for i = 1, dist do
- local count = 0
- while turtle.detect() do
- turtle.dig()
- tryUp()
- count = count + 1
- end
- for n = 1, count do
- tryDown()
- end
- tryForward()
- if w % spacing == row_num then
- turtle.digDown()
- local bucket = findItem("minecraft:bucket")
- if bucket == -1 then
- turtle.select(findItem("minecraft:water_bucket"))
- turtle.placeDown()
- bucket = findItem("minecraft:bucket")
- end
- local isbelow, data = turtle.inspectDown()
- if (data["name"] ~= "minecraft:water" and bucket ~= -1) or (data["name"] == "minecraft:water" and data["state"]["level"] ~= 0) then
- turtle.select(bucket)
- tryBack()
- tryBack()
- turtle.placeDown()
- tryForward()
- tryForward()
- turtle.placeDown()
- end
- tryDown()
- end
- local dirt = findItem("minecraft:dirt")
- if dirt ~= -1 then
- local isbelow, data = turtle.inspectDown()
- if isbelow and data["name"] ~= "minecraft:dirt" then
- turtle.digDown()
- end
- turtle.select(dirt)
- turtle.placeDown()
- if w % spacing == row_num then
- tryUp()
- end
- end
- end
- turtle.equipRight()
- while not checkIfHaveItem("minecraft:diamond_hoe") do
- term.clear()
- term.setCursorPos(1, 1)
- print("Give me diamond hoe, hoe")
- end
- turtle.select(findItem("minecraft:diamond_hoe"))
- turtle.equipRight()
- for i = 1, dist do
- tryBack()
- turtle.dig()
- end
- if w ~= width then
- turtle.turnLeft()
- tryForward()
- turtle.turnRight()
- end
- end
- turtle.equipRight()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement