Advertisement
guamie

mninetest

Feb 20th, 2015
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.00 KB | None | 0 0
  1. --mninetest
  2.  
  3. local tArgs = { ...}
  4.  
  5. z = 0
  6. local x = tonumber(tArgs[1])
  7. local y = tonumber(tArgs[2])
  8. --local Relation = tArgs[3]
  9. turtleX = 0
  10. turtleY = 0
  11. direction = 0
  12. local broken = false
  13.  
  14. function attack()
  15. attack = true
  16. while attack == true do
  17.     if turtle.attack() == false then
  18.         attack = false
  19.     end
  20. end
  21. end
  22.    
  23.  
  24.  
  25. --Rewrite to also use turtle.getFuelLimit() later to allow for advanced Turtles.  For now we assume we're using a standard 20k limit.
  26. --function CheckFuel()
  27. --while turtle.getFuelLevel() < 10 do
  28. --      ClearInventory()
  29. --  turtle.select(Fuel)
  30. --  turtle.dig()
  31. --  turtle.place()
  32. --  turtle.select(1)
  33. --for i=1, 4 do
  34. --  turtle.suck(64)
  35. --end
  36. --  turtle.select(Fuel)
  37. --  turtle.dig()
  38. --      shell.run('refuel all')
  39. --  turtle.select(1)
  40. --end
  41. --end
  42.  
  43.  
  44. function ClearInventory()
  45.         turtle.select(16)
  46.         turtle.dig()
  47. turtle.place()
  48. for i=1, 15 do
  49. turtle.select(i)
  50. turtle.drop()
  51. end
  52. turtle.select(16)
  53. turtle.dig()
  54. turtle.select(1)
  55. end
  56.  
  57. function CheckInventory()
  58. local InvFull = true
  59.  
  60. for i=1, 15 do
  61.         local InvCount = turtle.getItemCount(i)
  62.         if InvCount == 0 then
  63.         InvFull = false
  64.         end
  65. end
  66.  
  67. if InvFull then
  68.         ClearInventory()
  69.         return false
  70. end
  71. end
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78. function moveForward()
  79.     if not turtle.forward() then
  80.         if turtle.detect() then
  81.             if not turtle.dig() then
  82.                 print("dig returning false after detect")
  83.                 return false
  84.             else
  85.                 if turtle.forward() then
  86.                     turtle.digUp()
  87.                     CheckInventory()
  88.                     turtle.digDown()
  89.                     CheckInventory()
  90.                     return true
  91.                 else
  92.                     return moveForward()
  93.                 end
  94.             end
  95.         else
  96.             attack()
  97.             print(turtle.forward())
  98.             CheckInventory()
  99.             turtle.digUp()
  100.             CheckInventory()
  101.             turtle.digDown()
  102.             CheckInventory()
  103.             return true
  104.         end
  105.     else
  106.         turtle.digUp()
  107.         CheckInventory()
  108.         turtle.digDown()
  109.         CheckInventory()
  110.         return true
  111.     end
  112. --CheckFuel()
  113.     end
  114.  
  115. function moveDown()
  116.     if not turtle.down() then
  117.         if turtle.detectDown() then
  118.             if not turtle.digDown() then
  119.                 print("dig down returning false after detect")
  120.                 return false
  121.             else
  122.                 turtle.down()
  123.                 return true
  124.             end
  125.         else
  126.             attack = True
  127.             while turtle.attackDown() do
  128.                 turtle.attackDown()
  129.             end
  130.             turtle.down()
  131.             CheckInventory()
  132.             return true
  133.         end
  134.     else
  135.         return true
  136.     end
  137. --CheckFuel()
  138. end
  139.  
  140. function moveUp()
  141.     if not turtle.up() then
  142.         if turtle.detectUp() then
  143.             if not turtle.digUp() then
  144.                 print("dig up returning false after detect")
  145.                 return false
  146.             else
  147.                 turtle.up()
  148.                 CheckInventory()
  149.                 return true
  150.             end
  151.         else
  152.             attack = True                  
  153.             while turtle.attackUp() do
  154.                 turtle.attackUp()
  155.             end
  156.             turtle.up()
  157.             return true
  158.         end
  159.     else
  160.         return true
  161.     end
  162. --CheckFuel()
  163. end
  164.  
  165. function updatePosition()
  166.     if direction == 0 then
  167.         turtleY = turtleY + 1
  168.     elseif direction == 1 then
  169.         turtleX = turtleX + 1
  170.     elseif direction == 2 then
  171.         turtleY = turtleY - 1
  172.     elseif direction == 3 then
  173.         turtleX = turtleX - 1
  174.     end
  175. end
  176.  
  177. function right()
  178.     turtle.turnRight()
  179.     direction = (direction + 1) % 4
  180. end
  181.    
  182. function left()
  183.     turtle.turnLeft()
  184.     direction = (direction - 1) % 4
  185. end
  186.  
  187. function updateZ()
  188.     z = z + 1
  189. end
  190.  
  191. --Lets just check fuel now...
  192. --CheckFuel()
  193.  
  194. --The Main Loop
  195. --if Relation=='Down' then
  196. while not broken do
  197.     moved_down = 0
  198.     while moved_down < 3 do
  199.         if moveDown() then
  200.             updateZ()
  201.             moved_down = moved_down + 1
  202.         else
  203.             broken = true
  204.             break
  205.         end
  206.     end
  207.     if broken then
  208.         break
  209.     end
  210.     turtle.digDown()
  211.     CheckInventory()
  212.     i = 0
  213.     for i=1,x do
  214.         j = 1
  215.         while j < y do
  216.             if moveForward() then
  217.                 updatePosition()
  218.                 j = j + 1
  219.                 print("move forward was true and j is"..j)
  220.             else
  221.                 broken = true
  222.                 break
  223.             end
  224.         end
  225.         if broken then
  226.             break
  227.         end
  228.         if i ~= x then
  229.             if z % 2 ~= 0 then
  230.                 if direction == 0 then
  231.                     right()
  232.                     if moveForward() then
  233.                         updatePosition()
  234.                         right()
  235.                     else
  236.                         broken = true
  237.                         break
  238.                     end
  239.                 elseif direction == 2 then
  240.                     left()
  241.                     if moveForward() then
  242.                         updatePosition()
  243.                         left()
  244.                     else
  245.                         broken = true
  246.                         break
  247.                     end
  248.                 end
  249.             else
  250.                 if direction == 0 then
  251.                     left()
  252.                     if moveForward() then
  253.                         updatePosition()
  254.                         left()
  255.                     else
  256.                         broken = true
  257.                         break
  258.                     end
  259.                 elseif direction == 2 then
  260.                     right()
  261.                     if moveForward() then
  262.                         updatePosition()
  263.                         right()
  264.                     else
  265.                         broken = true
  266.                         break
  267.                     end
  268.                 end
  269.             end        
  270.         elseif i == x then
  271.             left()
  272.             left()
  273.         end
  274.     end
  275. end
  276. --elseif Relation=='Up' then
  277. --Clone Of Down
  278. --end
  279.  
  280. --Return To beginning
  281. while turtleX > 0 do
  282.     while direction ~= 3 do
  283.         left()
  284.     end
  285.     moveForward()
  286.     updatePosition()
  287. end
  288.  
  289. while turtleY > 0 do
  290.     while direction ~= 2 do
  291.         left()
  292.     end
  293.     moveForward()
  294.     updatePosition()
  295. end
  296.  
  297. while z > 0 do
  298.     moveUp()
  299.     z = z - 1
  300. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement