Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local args = {...}
- w = tonumber(args[1])
- l = tonumber(args[2])
- pos = {1, 0}
- dir = 1
- dirs = {
- {"forward", 0, 1},
- {"backward", 0, -1},
- {"left", -1, 0},
- {"right", 1, 0}
- }
- status = "mine"
- mc = 0
- function load()
- end
- function save()
- end
- function printPos()
- term.setCursorPos(1,1)
- term.clear()
- print(pos[1] .. " " .. pos[2])
- print(dir)
- end
- function forward()
- if turtle.getFuelLevel() < 80 then
- shell.run("mine/checkFuel.lua")
- end
- if turtle.detect() then
- succ, data = turtle.inspect()
- if data.name ~= "minecraft:sand" and data.name ~= "minecraft:gravel" then
- while turtle.detectUp() do
- turtle.digUp()
- end
- turtle.up()
- forward()
- else
- return
- end
- else
- for i = 1, 2 do
- pos[i] = pos[i] + dirs[dir][i+1]
- end
- if turtle.forward() then
- return
- else
- for i = 1, 2 do
- pos[i] = pos[i] - dirs[dir][i+1]
- end
- forward()
- end
- end
- end
- function turn(way)
- ways = {
- {3, 4},
- {4, 3},
- {1, 2},
- {2, 1}
- }
- if way == "right" then
- dir = ways[dir][2]
- turtle.turnRight()
- else
- dir = ways[dir][1]
- turtle.turnLeft()
- end
- end
- function mineDown()
- if turtle.detectDown() then
- succ, data = turtle.inspectDown()
- while succ and (data.name == "minecraft:sand" or data.name == "minecraft:gravel") do
- turtle.digDown()
- shell.run("mine/checkFuel.lua")
- turtle.down()
- succ, data = turtle.inspectDown()
- end
- else
- turtle.down()
- mineDown()
- end
- end
- function mine()
- if turtle.detect() then
- succ, data = turtle.inspect()
- if data.name == "minecraft:sand" or data.name == "minecraft:gravel" then
- while turtle.detect() do
- turtle.dig()
- mc = mc + 1
- end
- end
- end
- end
- function move()
- mine()
- forward()
- mine()
- mineDown()
- if mc >= 400 then
- shell.run("mine/deposit.lua")
- mc = 0
- end
- end
- function turnRow()
- if dir == 1 then
- turn("right")
- curW = pos[1]
- while curW == pos[1] do
- printPos()
- move()
- end
- turn("right")
- dir = 2
- else
- turn("left")
- curW = pos[1]
- while curW == pos[1] do
- printPos()
- move()
- end
- turn("left")
- dir = 1
- end
- end
- function hasReachedW()
- if pos[1] == w then
- return true
- end
- return false
- end
- function hasReachedL()
- if dir == 1 and pos[2] == l then
- return true
- elseif dir == 2 and pos[2] == 1 then
- return true
- end
- return false
- end
- function main()
- while not hasReachedW() do
- if pos[1] ~= 1 or hasReachedL() then
- turnRow()
- end
- while not hasReachedL() do
- move()
- end
- print("Reached L")
- end
- print("Reached W")
- shell.run("mine/deposit.lua")
- end
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement