Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local tArgs = { ... }
- --predeclare functions
- local printUsage
- local digSuccess
- local digFail
- local turtleReturn
- --predeclare variables
- local nDistance
- local sDirection
- local nReturnDistance
- local bTurtleReturn
- local fnDigHandle
- local fnMoveHandle
- local fnReverseMove
- --error avoidance
- local sDirection = "forward"
- local tDigHandle = {
- ["f"] = turtle.dig,
- ["fd"] = turtle.dig,
- ["fw"] = turtle.dig,
- ["forward"] = turtle.dig,
- ["forwards"] = turtle.dig,
- ["u"] = turtle.digUp,
- ["up"] = turtle.digUp,
- ["d"] = turtle.digDown,
- ["dn"] = turtle.digDown,
- ["down"] = turtle.digDown
- }
- local tMoveHandle = {
- ["f"] = turtle.forward,
- ["fd"] = turtle.forward,
- ["fw"] = turtle.forward,
- ["forward"] = turtle.forward,
- ["forwards"] = turtle.forward,
- ["u"] = turtle.up,
- ["up"] = turtle.up,
- ["d"] = turtle.down,
- ["dn"] = turtle.down,
- ["down"] = turtle.down,
- }
- --reverses original movement
- local tReverseMove = {
- ["f"] = turtle.back,
- ["fd"] = turtle.back,
- ["fw"] = turtle.back,
- ["forward"] = turtle.back,
- ["forwards"] = turtle.back,
- ["u"] = turtle.down,
- ["up"] = turtle.down,
- ["d"] = turtle.up,
- ["dn"] = turtle.up,
- ["down"] = turtle.up,
- }
- function turtleReturn()
- while nReturnDistance > 0 do
- if fnReverseMove() then
- nReturnDistance = nReturnDistance - 1
- else
- sleep(0.5)
- end
- end
- end
- function printUsage()
- print( "Usage: dig <distance> <direction> <return?>" )
- return
- end
- if ( #tArgs < 1 ) or ( #tArgs > 3 ) then
- printUsage()
- end
- nDistance = tonumber(tArgs[1])
- if #tArgs == 2 then
- sDirection = tArgs[2]
- elseif ( #tArgs == 3 ) and ( ( string.lower(tArgs[3]) == "return" ) or ( string.lower(tArgs[3]) == "r" ) or ( string.lower(tArgs[3]) == "ret" ) ) then
- sDirection = tArgs[2]
- bTurtleReturn = true
- nReturnDistance = tonumber(tArgs[1])
- elseif ( #tArgs == 3 ) and ( ( string.lower(tArgs[3]) ~= "return" ) or ( string.lower(tArgs[3]) ~= "r" ) or ( string.lower(tArgs[3]) ~= "ret" ) ) then
- end
- fnDigHandle = tDigHandle[string.lower(sDirection)]
- fnMoveHandle = tMoveHandle[string.lower(sDirection)]
- fnReverseMove = tReverseMove[string.lower(sDirection)]
- if fnDigHandle then
- while nDistance > 0 do
- fnDigHandle()
- if fnMoveHandle() then
- nDistance = nDistance - 1
- else
- sleep(0.5)
- end
- end
- if bTurtleReturn == true then
- turtleReturn()
- end
- else
- print( "No such direction: "..sDirection )
- print( "Try: forward, up, or down" )
- return
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement