Advertisement
NeonJ

do

Nov 2nd, 2015
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.51 KB | None | 0 0
  1. local tArgs = {...}
  2. if #tArgs <= 1 then
  3.   print( "Usage: do <direction> <distance> ..." )
  4.   return
  5. end
  6.  
  7. local tHandlers = {
  8.   ["forward"] = turtle.forward,
  9.   ["forwards"] = turtle.forward,
  10.   ["f"] = turtle.forward,
  11.   ["fd"] = turtle.forward,
  12.   ["backward"] = turtle.back,
  13.   ["backwards"] = turtle.back,
  14.   ["bd"] = turtle.back,
  15.   ["b"] = turtle.back,
  16.   ["up"] = turtle.up,
  17.   ["u"] = turtle.up,
  18.   ["down"] = turtle.down,
  19.   ["dn"] = turtle.down,
  20.   ["d"] = turtle.down,
  21.   ["left"] = turtle.turnLeft,
  22.   ["lt"] = turtle.turnLeft,
  23.   ["tl"] = turtle.turnLeft,
  24.   ["l"] = turtle.turnLeft,
  25.   ["right"] = turtle.turnRight,
  26.   ["rt"] = turtle.turnRight,
  27.   ["tr"] = turtle.turnRight,
  28.   ["r"] = turtle.turnRight,
  29.   ["dig"] = turtle.dig,
  30.   ["df"] = turtle.dig,
  31.   ["digdown"] = turtle.digDown,
  32.   ["dd"] = turtle.digDown,
  33.   ["digup"] = turtle.digUp,
  34.   ["du"] = turtle.digUp,
  35. }
  36.  
  37. local nArg = 1
  38. while nArg <= #tArgs do
  39.     local sDirection = tArgs[nArg]
  40.     local nDistance = 1
  41.     if nArg < #tArgs then
  42.         local num = tonumber( tArgs[nArg + 1] )
  43.         if num then
  44.             nDistance = num
  45.             nArg = nArg + 1
  46.         end
  47.     end
  48.     nArg = nArg + 1
  49.  
  50.     local fnHandler = tHandlers[string.lower(sDirection)]
  51.     if fnHandler then
  52.         while nDistance > 0 do
  53.             if fnHandler() then
  54.                 nDistance = nDistance - 1
  55.             elseif turtle.getFuelLevel() == 0 then
  56.                 print( "Out of fuel" )
  57.                 return
  58.             else
  59.                 sleep(0.5)
  60.             end
  61.         end
  62.     else
  63.         print( "No such direction: "..sDirection )
  64.         print( "Try: forward, back, up, down" )
  65.         return
  66.     end
  67.  
  68. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement