Advertisement
TehChikenHater

cTurtleOS

Jul 21st, 2014
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.21 KB | None | 0 0
  1. print("cTurtleOS 1.0")
  2.  
  3. local args = {...}
  4. local command
  5.  
  6. function string:split(delimiter)
  7.     local result = { }
  8.     local from = 1
  9.     local delim_from, delim_to = string.find(self, delimiter, from)
  10.    
  11.     while delim_from do
  12.         table.insert(result, string.sub(self, from, delim_from - 1))
  13.         from = delim_to + 1
  14.         delim_from, delim_to = string.find(self, delimiter, from)
  15.     end
  16.    
  17.     table.insert(result, string.sub(self, from))
  18.     return result
  19. end
  20.  
  21. function isNumber(var)
  22.     if (tonumber(var) ~= nil) then
  23.         return true
  24.     else
  25.         return false
  26.     end
  27. end
  28.  
  29. function printUsage()
  30.     print("Usage: <command> [arguments]")
  31. end
  32.  
  33. function tryDig()
  34.     while (turtle.detect()) do
  35.         if (turtle.dig()) then
  36.             sleep(0.5)
  37.             return true
  38.         else
  39.             return false
  40.         end
  41.     end
  42. end
  43.  
  44. function tryDigDown()
  45.     while (turtle.detectDown()) do
  46.         if (turtle.digDown()) then
  47.             sleep(0.5)
  48.             return true
  49.         else
  50.             return false
  51.         end
  52.     end
  53. end
  54.  
  55. function tryDigUp()
  56.     while (turtle.detectUp()) do
  57.         if (turtle.digUp()) then
  58.             sleep(0.5)
  59.             return true
  60.         else
  61.             return false
  62.         end
  63.     end
  64. end
  65.  
  66. function tryUp()
  67.     while (not turtle.up()) do
  68.         if (turtle.detectUp()) then
  69.             if (not tryDigUp()) then
  70.                 return false
  71.             end
  72.         elseif (turtle.attackUp()) then
  73.            
  74.         else
  75.             sleep(0.5)
  76.         end
  77.     end
  78. end
  79.  
  80. function tryDown()
  81.     while (not turtle.down()) do
  82.         if (turtle.detectDown()) then
  83.             if (not tryDigDown()) then
  84.                 return false
  85.             end
  86.         elseif (turtle.attackDown()) then
  87.            
  88.         else
  89.             sleep(0.5)
  90.         end
  91.     end
  92. end
  93.  
  94. function tryForward()
  95.     while (not turtle.forward()) do
  96.         if (turtle.detect()) then
  97.             if (not tryDig()) then
  98.                 return false
  99.             end
  100.         elseif (turtle.attack()) then
  101.            
  102.         else
  103.             sleep(0.5)
  104.         end
  105.     end
  106. end
  107.  
  108. function tryRefuel()
  109.     if (turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < 1) then
  110.         for i = 1, 16 do
  111.             if (turtle.getItemCount(n) > 0) then
  112.                 turtle.select(i)
  113.                 if (turtle.refuel(i)) then
  114.                     turtle.select(i)
  115.                     return true
  116.                 end
  117.             end
  118.         end
  119.     else
  120.         turtle.select(1)
  121.         return false
  122.     end
  123. end
  124.  
  125. function strip(depth, width, height)   
  126.     for i = 1, depth do
  127.         turtle.placeDown()
  128.         tryRefuel()
  129.         tryDig()
  130.         tryForward()
  131.         turtle.turnLeft()
  132.         tryDig()
  133.         tryUp()
  134.         tryDig()
  135.         tryUp()
  136.         tryDig()
  137.         turtle.turnRight()
  138.         turtle.turnRight()
  139.         tryDig()
  140.         tryDown()
  141.         tryDig()
  142.         tryDown()
  143.         tryDig()
  144.         turtle.turnLeft()
  145.     end
  146. end
  147.  
  148. function stairs(depth)
  149.     for i = 1, depth do
  150. turtle.placeDown()
  151.         tryRefuel()
  152.         tryDig()
  153.         tryForward()
  154.         turtle.turnLeft()
  155.         tryDig()
  156.         tryForward()
  157.         turtle.turnRight()
  158.         tryUp()
  159.         tryDig()
  160.         tryForward()
  161.         turtle.turnRight()
  162.         tryDig()
  163.         tryForward()
  164.         turtle.turnLeft()
  165.     end
  166. end
  167.  
  168. if (#args > 0) then
  169.     command = args[1]
  170.     if (command:lower() == "strip") then
  171.         if (#args == 2) then
  172.             if (isNumber(args[2])) then
  173.                 strip(args[2], 3, 3)
  174.             else
  175.                 print("The depth must be a number")
  176.                 terminate()
  177.             end
  178.         else
  179.             terminate()
  180.         end
  181.     elseif (command:lower() == "stairs") then
  182.         if (#args == 2) then
  183.             if (isNumber(args[2])) then
  184.                 stairs(args[2])
  185.             else
  186.                 print("The depth must be a number")
  187.                 terminate()
  188.             end
  189.         else
  190.             terminate()
  191.         end
  192.     end
  193. else
  194.     printUsage()
  195.     terminate()
  196. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement