Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Logging function
- function log(msg)
- print("[LOG] " .. msg)
- end
- -- Move forward safely
- function forward()
- while not turtle.forward() do
- turtle.dig()
- sleep(0.3)
- end
- log("Moved forward")
- end
- -- Move back safely
- function back()
- if not turtle.back() then
- turtle.turnLeft()
- turtle.turnLeft()
- forward()
- turtle.turnLeft()
- turtle.turnLeft()
- else
- log("Moved back")
- end
- end
- -- Move up safely
- function up()
- while not turtle.up() do
- turtle.digUp()
- sleep(0.3)
- end
- log("Moved up")
- end
- -- Move down safely
- function down()
- while not turtle.down() do
- turtle.digDown()
- sleep(0.3)
- end
- log("Moved down")
- end
- -- Dig vertical column 5 blocks high (current + 4 above)
- function digColumn()
- for i = 1, 4 do
- up()
- turtle.digUp()
- end
- -- Return back down
- for i = 1, 4 do
- down()
- end
- end
- -- Dig 16-long tunnel, 5 blocks high
- function digTunnel()
- for i = 1, 16 do
- turtle.dig()
- forward()
- turtle.digUp()
- turtle.digDown()
- digColumn()
- end
- end
- -- Return 16 steps backward
- function returnBack()
- turtle.turnLeft()
- turtle.turnLeft()
- for i = 1, 16 do
- forward()
- end
- turtle.turnLeft()
- turtle.turnLeft()
- log("Returned to start of tunnel")
- end
- -- Move left 1 block in Z axis
- function moveLeft()
- turtle.turnLeft()
- turtle.dig()
- forward()
- turtle.turnRight()
- log("Shifted left (Z -1)")
- end
- -- Do one full horizontal slice (16 parallel tunnels)
- function doLine()
- for i = 1, 16 do
- log("Starting tunnel " .. i .. "/16")
- digTunnel()
- returnBack()
- if i < 16 then
- moveLeft()
- end
- end
- end
- -- Return to very first starting position
- function returnToStartOfLine()
- turtle.turnRight()
- for i = 1, 16 do
- forward()
- end
- turtle.turnLeft()
- for i = 1, 16 do
- back()
- end
- log("Returned to origin")
- end
- -- Main mining loop
- for round = 1, 999 do -- Can loop forever or limit rounds
- log("=== Starting mining round " .. round .. " ===")
- doLine()
- returnToStartOfLine()
- -- Move to next row in +X
- forward()
- log("Shifted forward to next mining layer (X +1)")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement