Advertisement
Guest User

zigzagerat

a guest
Sep 30th, 2014
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.56 KB | None | 0 0
  1. local var1 = 0 -- forward movement count
  2. local var2 = 0 -- torch placement count
  3. local var3 = 1 -- torch slot
  4. local var4 = 1 -- coal slot
  5. local var5 = 0 -- starting inventory slot
  6. local var6 = 0 -- turning function count
  7. local fuelLevel = 0
  8. local torchLevel = 0
  9.  
  10. local function placeChest() -- this function makes sure that the area is ready to place the chest.
  11.   if turtle.detectUp == true then
  12.     turtle.digUp()
  13.   end
  14.   if turtle.detectDown() == true then
  15.     turtle.up()
  16.   end
  17.   turtle.select(16)
  18.   turtle.placeDown()
  19. end
  20.  
  21. local function removeChest() -- removes chest after it's been placed
  22.   turtle.select(16)
  23.     if turtle.getItemCount(16) == 0 then
  24.       turtle.digDown()
  25.     elseif turtle.getItemCount(16) > 2 then
  26.       turtle.dropDown()
  27.       turtle.digDown()
  28.     end
  29. end  
  30.  
  31. local function findTorch() -- finds torch stack in inventory
  32.   for i = 1,12 do
  33.     turtle.select(14)
  34.       if turtle.compareTo(i) then
  35.         var3 = i
  36.       end
  37.       turtle.select(var3)
  38.   end
  39. end
  40.  
  41. local function findFuel() -- finds the stack of fuel for turtle
  42.   for i = 1,12 do
  43.     turtle.select(15)
  44.     if turtle.compareTo(i) then
  45.       var4 = i
  46.     end
  47.     turtle.select(var4)
  48.   end
  49. end
  50.  
  51. local function selectTorch()
  52.   turtle.select(var3)
  53. end
  54.  
  55. local function selectFuel()
  56.   turtle.select(var4)
  57. end
  58.  
  59. local function torch() -- counts down to 8 blocks in space, then places a torch
  60.   if true then
  61.     var2 = var2 + 1
  62.       if var2 == 8 then
  63.         turtle.turnRight()
  64.         selectTorch()
  65.         turtle.dig()
  66.         turtle.place()
  67.         turtle.select(1)
  68.         turtle.turnLeft()
  69.         var2 = 0
  70.       end
  71.   end
  72. end
  73.  
  74. local function findFirstSlot()
  75.   if true then
  76.     if var3 > var4 then
  77.       var5 = var3 + 1
  78.     elseif var3 < var4 then
  79.       var5 = var4 + 1
  80.     end
  81.   end
  82. end
  83.  
  84. local function dumpToChest()
  85. for i = var5,13 do
  86.   if turtle.getItemCount(13) > 0 then
  87.     placeChest()
  88.     turtle.select(i)
  89.     turtle.dropDown()
  90.   end
  91.   removeChest()
  92. end
  93. end
  94.  
  95. local function refillFuel()
  96.   if turtle.getItemCount(var4) <= 5 then
  97.     turtle.getItemSpace(var4)
  98.     fuelLevel = turtle.getItemSpace(var4)
  99.     placeChest()
  100.     turtle.select(var4)
  101.     turtle.suckDown(fuelLevel)
  102.     removeChest()
  103.   end
  104.   turtle.getFuelLevel()
  105.   if turtle.getFuelLevel() <= 5 then
  106.     turtle.refuel(2)
  107.   end
  108. end
  109.    
  110. local function refillTorch()    
  111.   if turtle.getItemCount(var3) <= 5 then
  112.     turtle.getItemSpace(var3)
  113.     torchLevel = turtle.getItemSpace(var3)
  114.     placeChest()
  115.     turtle.select(var3)
  116.     turtle.suckDown(torchLevel)
  117.     removeChest()
  118.   end
  119. end
  120.  
  121. local function inventoryManager()
  122.   if true then
  123.     refillTorch()
  124.     refillFuel()
  125.     dumpToChest()
  126.   end
  127. end
  128.    
  129. local function move64Forward() --moves the turtle on the y axis by 64. Also uses inventory management previously stated.
  130.   if true then
  131.     turtle.forward()
  132.     inventoryManager()
  133.     torch()
  134.     var1 = var1 + 1
  135.   end
  136. end
  137.  
  138. local function tunnel() -- makes 1x3x1 tunnel
  139.     if true then
  140.       turtle.dig()
  141.       turtle.forward()
  142.       if turtle.forward() == false then
  143.         repeat
  144.         turtle.dig()
  145.         sleep(0.25)
  146.         until turtle.forward() == true
  147.       end
  148.       turtle.digUp()
  149.       turtle.digDown()
  150.     end
  151. end
  152.  
  153. local function tunnelRight()
  154.   turtle.turnRight()
  155.   tunnel()
  156.   torch()
  157.   inventoryManager()
  158.   tunnel()
  159.   torch()
  160.   inventoryManager()
  161.   tunnel()
  162.   torch()
  163.   inventoryManager()
  164.   tunnel()
  165.   torch()
  166.   inventoryManager()
  167.   turtle.turnRight()
  168. end
  169.  
  170. local function tunnelLeft()
  171.   turtle.turnLeft()
  172.   tunnel()
  173.   torch()
  174.   inventoryManager()
  175.   tunnel()
  176.   torch()
  177.   inventoryManager()
  178.   tunnel()
  179.   torch()
  180.   inventoryManager()
  181.   tunnel()
  182.   torch()
  183.   inventoryManager()
  184.   turtle.turnLeft()
  185. end
  186.  
  187. local function tunnel64Forward() -- applies tunnel and forward motion as well as inventory management.
  188.   repeat
  189.     move64Forward()
  190.     if not turtle.forward() then
  191.       tunnel()
  192.       print(var1)
  193.     end
  194.   until var1 >= 64
  195.   var1 = 0
  196. end
  197.  
  198. local function startUp()
  199.   print("Thank you for choosing ZigZagarat as your main stripmining protacol. Please wait for startup")
  200.   findFuel()
  201.   findTorch()
  202.   findFirstSlot()
  203. end
  204. local function movePattern()
  205.   while true do
  206.     tunnel64Forward()
  207.     tunnelRight()
  208.     tunnel64Forward()
  209.     tunnelLeft()
  210.   end
  211. end
  212. local function onKeyPress()
  213.   while ture do
  214.     print("Press any key to stop")
  215.     local event = os.pullEvent()
  216.     if event == "key" then
  217.       return
  218.     end
  219.   end
  220. end
  221.  
  222. startUp()
  223. inventoryManager()
  224. movePattern()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement