enigma_0Z

Utiliturtle

Nov 25th, 2012
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.04 KB | None | 0 0
  1. -- Utiliturtle
  2.  
  3. function printUsage()
  4.   print("Usage:")
  5.   print("  util <cmd> <args>")
  6.   print("")
  7.   print("Commands:")
  8.   print("  dig [up|down]")
  9.   print("    - Digs forward (no arg), up or down, but does not move")
  10.   print("  digForward <length>")
  11.   print("    - Digs a 1x1 tunnel forward length")
  12.   print("  digDown <length>")
  13.   print("    - digs a 1x2 tunnel forward by digging forward and then 1 down")
  14.   print("  digUp <length>")
  15.   print("    - digs a 1x2 tunnel forward by digging forward and then 1 up")
  16.   print("  digAll <length>")
  17.   print("    - digs a 1x3 tunnel forward by digging forward and then up and down")
  18.   print("  recharge <charge level> <distance = 1> <direction = up>")
  19.   print("    - waits for turtle to recharge via charging station until charge level")
  20.   print("      goes <distance> in <direction> to move away from charger when complete")
  21. end
  22.  
  23. local tArgs = { ... }
  24.  
  25. function digger(len, down, up, back)
  26.   len = len or 1
  27.   down = down or false
  28.   up = up or false
  29.   back = back or true
  30.  
  31.   if len == nil then
  32.     return false
  33.   end
  34.  
  35.   for i = 1, len do
  36.     turtle.dig()
  37.     if down then
  38.       turtle.digDown()
  39.     end
  40.     if up then
  41.       turtle.digUp()
  42.     end
  43.    
  44.     turtle.forward()
  45.   end
  46.  
  47.   if back then
  48.     for i = 1, len do
  49.       turtle.back()
  50.     end
  51.   end
  52. end
  53.  
  54. function recharge(level, distance, direction)
  55.   level = level or 1
  56.   distance = distance or 1
  57.   direction = direction or "up"
  58.  
  59.   fuelLevel = turtle.getFuelLevel()
  60.   while fuelLevel < level + distance do
  61.     print("Current Level: " .. fuelLevel)
  62.     sleep(1)
  63.     fuelLevel = turtle.getFuelLevel()
  64.   end
  65.  
  66.   if (direction == "left") then
  67.     turtle.turnLeft()
  68.     direction = "forward"
  69.   elseif (direction == "right") then
  70.     turtle.turnRight()
  71.     direction = "forward"
  72.   end
  73.  
  74.   for i = 1, distance do
  75.     if (direction == "up") then
  76.       turtle.up()
  77.     elseif (direction == "down") then
  78.       turtle.down()
  79.     elseif (direction == "forward") then
  80.       turtle.forward()
  81.     elseif (direction == "back") then
  82.       turtle.back()
  83.     end
  84.   end
  85. end    
  86.  
  87. if #tArgs < 1 then
  88.   printUsage()
  89. elseif tArgs[1] == "dig" then
  90.   if tArgs[2] == nil then
  91.     turtle.dig()
  92.   elseif tArgs[2] == "down" then
  93.     turtle.digDown()
  94.   elseif tArgs[2] == "up" then
  95.     turtle.digUp()
  96.   end
  97. elseif tArgs[1] == "digForward" then
  98.   if tArgs[2] == "-x" then
  99.     digger(tArgs[3], false, false, false)
  100.   else
  101.     digger(tArgs[2], false, false, true)
  102.   end
  103. elseif tArgs[1] == "digDown" then
  104.   if tArgs[2] == "-x" then
  105.     digger(tArgs[3], true, false, false)
  106.   else
  107.     digger(tArgs[2], true, false, true)
  108.   end
  109. elseif tArgs[1] == "digUp" then
  110.   if tArgs[2] == "-x" then
  111.     digger(tArgs[3], false, true, false)
  112.   else
  113.     digger(tArgs[2], false, true, true)
  114.   end
  115. elseif tArgs[1] == "digAll" then
  116.   if tArgs[2] == "-x" then
  117.     digger(tArgs[3], true, true, false)
  118.   else
  119.     digger(tArgs[2], true, true, true)
  120.   end
  121. elseif tArgs[1] == "recharge" then
  122.   recharge(tArgs[2], tArgs[3], tArgs[4])
  123.  
  124. else
  125.   printUsage()
  126. end
Advertisement
Add Comment
Please, Sign In to add comment