Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- m = 0 --mining counter
- ds = 2 --drop slot selection
- ic = 0 --item count
- d = 0 --distance (length of tunnel)
- cl = 0 --current loop
- lt = 3 --loop target
- fl = turtle.getFuelLevel() --fuel level
- lat = 1 --layer target
- cla = 1 --current layer
- icf = 0 --item count fuel
- --start the turtle on top of water stream it will go up by 1 more block
- --hints
- print("1: Put Cobblestone/Deep Slate in my first inventory slot")
- print("2: Put fuel in my second inventory slot")
- print("3: Place me right above the water stream")
- print("Current fuel level is:", turtle.getFuelLevel())
- --user inputs
- print("Enter length of tunnels:")
- local d = tonumber(io.read())
- print("Enter amount of loops:")
- local lt = tonumber(io.read())
- print("Enter amount of layers (upwards):")
- local lat = tonumber(io.read())
- --checking starting parameters
- if fl == 0 then
- print("ERROR: I need starter fuel")
- error()
- end
- turtle.select(1)
- ic = turtle.getItemCount()
- if ic < 1 then
- print("ERROR: Put Cobblestone/Deep Slate in my first inventory slot!")
- error()
- end
- --OPERATIONAL FUNCTIONS
- --refuel function
- local function fuelCheck()
- fl = turtle.getFuelLevel()
- while fl <= 1000 do
- turtle.select(2)
- icf = turtle.getItemCount()
- if icf > 1 then
- turtle.refuel(1)
- print("I refuelled to", turtle.getFuelLevel())
- else
- print("I'm out of fuel!")
- error()
- end
- turtle.select(1)
- fl = turtle.getFuelLevel()
- end
- end
- --drop trash function
- function dropCobble(slot)
- turtle.select(slot)
- turtle.dropDown(turtle.getItemCount() - 1)
- end
- --anti gravel function
- local function digUntilEmpty()
- while turtle.detect() do
- turtle.dig()
- end
- end
- --dig straight line
- local function digForward()
- digUntilEmpty()
- turtle.forward()
- turtle.digDown()
- turtle.digUp()
- end
- --MINING OPERATION
- --layer loop
- while cla <= lat do
- --back and forth loop
- while cl < lt do
- cl = cl + 1
- --move turtle up to mining level
- if cla > 1 then
- for i = 0, (cla-1)*3, 1 do
- turtle.digUp()
- turtle.up()
- turtle.digUp()
- end
- else
- turtle.digUp()
- turtle.up()
- turtle.digUp()
- end
- --first straight
- while m < d do
- digForward()
- m = m + 1
- if m == 10 or m == 20 or m == 30 or m == 40 or m == 50 then
- dropCobble(1)
- end
- end
- --turn around
- if m == d then
- turtle.turnLeft()
- digUntilEmpty()
- turtle.forward()
- turtle.digUp()
- turtle.digDown()
- turtle.turnLeft()
- fuelCheck()
- dropCobble(1)
- m = 0
- end
- --second straight
- while m < d do
- digForward()
- m = m + 1
- if m == 10 or m == 20 or m == 30 or m == 40 or m == 50 then
- dropCobble(1)
- end
- end
- --user information
- print("I just finished loop:", cl, "out of", lt)
- print("on layer:", cla, "out of", lat)
- --item drop-off
- if cla > 1 then
- for i = 0, (cla - 1) * 3, 1 do
- turtle.digDown()
- turtle.down()
- end
- else
- turtle.digDown()
- turtle.down()
- end
- while ds < 16 do --dropping everything except slot 1 and 2
- ds = ds + 1
- turtle.select(ds)
- turtle.dropDown()
- end
- ds = 2 --reset for next loop
- m = 0
- turtle.select(1)
- --second turn around unless it's the last loop
- if cl < lt then
- turtle.turnRight()
- digUntilEmpty()
- turtle.forward()
- turtle.digDown()
- turtle.digUp()
- turtle.turnRight()
- end
- end --back and forth looping ends
- cl = 0 --reset current loop for next layer
- --bring turtle back to layer starting pos
- turtle.turnLeft()
- for i = 0, lt*2-2, 1 do
- turtle.forward()
- end
- turtle.turnLeft()
- cla = cla + 1 --finished layer increase current layer
- end
- --end info
- print("Fuel level after job:", turtle.getFuelLevel())
- print("Job's done!")
Advertisement
Add Comment
Please, Sign In to add comment