Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------------
- --slot 1 is crapslot
- direction = "north"
- tdirection = "north"
- x = 0
- y = 0
- z = 0
- lx = 0
- ly = 0
- lz = 0
- tx = 0
- ty = 0
- tz = 0
- gotnumber = false
- dropCobble = true
- finished = false
- movedown = false
- full = false
- fuelComeBack = true
- function mine()
- turtle.dig()
- end
- function compareItems()
- if not turtle.detect() then return true end
- for i=1 , 16 do
- turtle.select(i)
- amount = turtle.getItemCount(i)
- if amount == 0 then return true end
- if turtle.compare() and amount<64 then return true end
- end
- return false
- end
- function dumpItems()
- if not dropCobble then
- turtle.select(1)
- if not turtle.drop() and turtle.getItemCount(i) > 0 then
- return false
- end
- end
- for i=2 , 16 do
- turtle.select(i)
- if not turtle.drop() and turtle.getItemCount(i) > 0 then
- return false
- end
- end
- return true
- end
- function goFurther()
- turtle.turnRight()
- turtle.turnRight()
- while ly < ty do
- turtle.down()
- ly = ly + 1
- end
- if tdirection == "west" then tz = tz - 1 end
- while lz < tz do
- turtle.forward()
- lz = lz + 1
- end
- turtle.turnRight()
- while lx < tx do
- turtle.forward()
- lx = lx + 1
- end
- direction = "east"
- if tdirection == "north" then
- turtle.turnLeft()
- direction = "north"
- end
- if tdirection == "west" then
- turtle.turnLeft()
- turtle.forward()
- lz = lz + 1
- turtle.turnLeft()
- direction = "west"
- end
- end
- function goBack()
- tx = lx
- ty = ly
- tz = lz
- tdirection = direction
- if direction == "west" then
- turtle.turnLeft()
- turtle.forward()
- turtle.turnRight()
- end
- --- first go back to x = 0
- if direction == "north" then
- direction = "west"
- turtle.turnLeft()
- end
- if direction == "east" then
- direction = "west"
- turtle.turnLeft()
- turtle.turnLeft()
- end
- while lx > 0 do
- turtle.forward()
- lx = lx - 1
- end
- turtle.turnLeft()
- --- then go back to chest
- while lz > 0 do
- turtle.forward()
- lz = lz - 1
- end
- if ly == y and not full then
- finished = true
- print("I'm at the correct level")
- end
- tlevel = ly
- while ly > 0 do
- turtle.up()
- ly = ly - 1
- end
- if not dumpItems() then
- finished = true
- print("I couldn't drop my items")
- end
- turtle.select(1)
- if full then
- goFurther()
- elseif not finished and movedown then
- tlevel = tlevel + 1
- while ly < tlevel do
- turtle.digDown()
- turtle.down()
- ly = ly + 1
- end
- turtle.turnRight()
- turtle.turnRight()
- direction = "north"
- end
- movedown = false
- full = false
- end
- function move()
- while not turtle.forward() do
- mine()
- end
- if direction == "north" then lz = lz + 1
- elseif direction == "west" then lx = lx - 1
- elseif direction == "east" then lx = lx + 1
- else lz = lz - 1
- end
- if lx == 0 and direction == "north" then
- turtle.turnRight()
- direction = "east"
- end
- if lx == x and direction == "north" then
- turtle.turnLeft()
- direction = "west"
- end
- if lx == 0 and direction == "west" then
- turtle.turnRight()
- direction = "north"
- if lz == z then
- movedown = true
- goBack()
- end
- end
- if lx == x and direction == "east" then
- turtle.turnLeft()
- direction = "north"
- if lz == z then
- movedown = true
- goBack()
- end
- end
- end
- function checkItems()
- for i=1 , 16 do
- n = turtle.getItemCount(i)
- if n == 64 then
- if i == 1 and dropCobble == true then
- turtle.select(1)
- turtle.drop(63)
- else
- full = true
- goBack()
- end
- end
- end
- end
- function checkFuel()
- fuelNeeded = lx+lz+ly+5
- fuelLevel = turtle.getFuelLevel()
- if fuelComeBack and fuelLevel<fuelNeeded then
- finished = true
- goBack()
- print("Fuel is up")
- elseif fuelLevel<1 then
- finished = true
- print("Fuel is up")
- end
- end
- ----start
- turtle.select(1)
- term.clear()
- term.setCursorPos(1,1)
- print("What dimensions do you want?")
- print("")
- while not gotnumber do
- term.write("X: ")
- x = io.read()
- gotnumber = true
- if not tonumber(x) or x == "0" then
- print("Please enter a number higher than 0")
- gotnumber = false
- end
- end
- gotnumber = false
- while not gotnumber do
- term.write("Y: ")
- y = io.read()
- gotnumber = true
- if not tonumber(y) or y == "0" then
- print("Please enter a number higher than 0")
- gotnumber = false
- end
- end
- gotnumber = false
- while not gotnumber do
- term.write("Z: ")
- z = io.read()
- gotnumber = true
- if not tonumber(z) or z == "0" then
- print("Please enter a number higher than 0")
- gotnumber = false
- end
- end
- answer = "no"
- gotnumber = false
- while not gotnumber do
- term.write("Drop cobblstone? ")
- answer = io.read()
- gotnumber = true
- if answer == "no" or answer == "yes" or answer == "y" or answer == "n" or answer == "true" or answer == "false" or answer == "1" or answer == "0" then break end
- print("Please say yes or no")
- gotnumber = false
- end
- if answer == "yes" or answer == "y" or answer == "true" or answer == "1" then dropCobble = true else dropCobble = false end
- answer = "no"
- gotnumber = false
- while not gotnumber do
- print("Come back when fuel is up? ")
- answer = io.read()
- gotnumber = true
- if answer == "no" or answer == "yes" or answer == "y" or answer == "n" or answer == "true" or answer == "false" or answer == "1" or answer == "0" then break end
- print("Please say yes or no")
- gotnumber = false
- end
- if answer == "yes" or answer == "y" or answer == "true" or answer == "1" then fuelComeBack = true else fuelComeBack = false end
- x = math.abs(tonumber(x))-1
- y = math.abs(tonumber(y))-1
- z = math.abs(tonumber(z))
- while not finished do
- --if not compareItems() then full = true goBack() end
- mine()
- checkItems()
- move()
- checkFuel()
- end
- turtle.turnRight()
- turtle.turnRight()
Advertisement
Add Comment
Please, Sign In to add comment