Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Startup
- tArgs = {...}
- sides = {"right","left","bottom","top","front"}
- location = true
- for i = 1,#sides do
- if peripheral.getType(sides[i]) == "modem" then
- modem = true
- rednet.open(sides[i])
- break
- else
- modem = false
- end
- end
- if not modem then
- print("Could not find a modem")
- error()
- end
- if not tArgs[1] or not tonumber(tArgs[1]) then
- print("Usage: shaft <length>")
- error(
- else
- length = tonumber(tArgs[1])
- end
- x,y,z = gps.locate()
- if y ~= nil then
- backupy = y
- path = y - 14
- print("Current Y is "..y..". Going "..path.." blocks down")
- else
- print("Could not determine y cord")
- error()
- end
- --Functions
- function dig()
- if turtle.detect() then
- while not turtle.dig() do
- turtle.attack()
- end
- end
- end
- function digUp()
- if turtle.detectUp() then
- while not turtle.digUp() do
- turtle.attackUp()
- end
- end
- end
- function digDown()
- if turtle.detectDown() then
- while not turtle.digDown() do
- turtle.attackDown()
- end
- end
- end
- function forward()
- while not turtle.forward() do
- turtle.dig()
- turtle.attack()
- end
- end
- function up()
- while not turtle.up() do
- turtle.digUp()
- turtle.attackUp()
- end
- end
- function down()
- while not turtle.down() do
- turtle.digDown()
- turtle.attackDown()
- end
- end
- function right()
- turtle.turnRight()
- end
- function left()
- turtle.turnLeft()
- end
- function back()
- while not turtle.back() do
- turtle.turnRight()
- turtle.turnRight()
- repeat until not turtle.dig() and not turtle.attack()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- end
- function checkInv()
- if turtle.getItemCount(16) then
- return true
- end
- end
- function dig()
- if turtle.detect() then
- while not turtle.dig() do
- turtle.attack()
- end
- end
- end
- function getPos()
- x,y,z = nil
- x,y,z = gps.locate()
- if y == nil then
- return false
- else
- return y
- end
- end
- function stair()
- time = 0
- repeat
- for i = 1,4 do
- if location then
- y = getPos()
- if not y then
- print("Could not determine location. Relying on backup y")
- y = backupy
- location = false
- else
- location = true
- end
- else
- y = backupy
- end
- turtle.digDown()
- turtle.down()
- backupy = backupy - 1
- dig()
- forward()
- digDown()
- digUp()
- right()
- dig()
- forward()
- digDown()
- digUp()
- back()
- if time == 4 then
- turtle.select(1)
- turtle.place()
- left()
- time = 0
- else
- left()
- time = time + 1
- end
- if y < 16 then
- break
- end
- end
- until y < 16
- end
- function shaft()
- for i = 1,length do
- for i = 1,2 do
- dig()
- forward()
- digUp()
- right()
- dig()
- forward()
- digUp()
- back()
- left()
- end
- dig()
- forward()
- digUp()
- right()
- dig()
- forward()
- digUp()
- for i = 1,3 do
- dig()
- forward()
- digUp()
- end
- for i = 1,4 do
- back()
- end
- left()
- left()
- for i = 1,3 do
- dig()
- forward()
- digUp()
- end
- for i = 1,3 do
- back()
- end
- right()
- end
- end
- stair()
- shaft()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement