Advertisement
jordonbc

CustomStripmine

Oct 11th, 2018
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.81 KB | None | 0 0
  1. -- This Version
  2. -- 2.13 10/11/2014
  3. -- ChangeLogs
  4. -- 2.04 - Adding Left or Right Support
  5. -- 2.05 - Changing Lot Code For Some Stable And Cleaner Code
  6. -- 2.06 - Ops Forget Fuel Chcking Code after rewrtitting
  7. -- 2.07 - Woops My Bad i wrote back() not Back()
  8. -- 2.08 - Fixing Imputs
  9. -- 2.09 - Forget That i change remove line of code since i use local function now
  10. -- 2.10 - Minor error with back that it leave one block in wall
  11. --    Change: Torch spacing to 8 from 10
  12. -- 2.11 - Change: Right to left and Left to Right better understand
  13. -- 2.12 - Add Stop Code when item are gone
  14. -- 2.13 - i made big mistake i forget to end to new stop code
  15. -- ToDoList
  16. -- Add Code to place torch each time it starts
  17. -- Add Fuel Code so can know almost how much fuel you need
  18. -- Add second fuel slot if you go allout diggin
  19. -- Mabye add code that make turtle make new line of tunnels
  20.  
  21. --Local
  22. local distance = 0 -- How Far Did User Pick
  23. local onlight = 0 -- When to Place Torch
  24. local torch = turtle.getItemCount(1) -- How many items are in slot 1 (torch)
  25. local chest = turtle.getItemCount(2) -- How many items are in slot 2 (chest)
  26. local ItemFuel = turtle.getItemCount(3) -- How many items are in slot 3 (Fuel)
  27. local MD = 3 -- How Many Blocks Apart From Each Mine
  28. local MineTimes = 0 -- If Multi Mines Are ON then This will keep Count
  29. local Fuel = 0 -- if 2 then it is unlimited no fuel needed
  30. local NeedFuel = 0 -- If Fuel Need Then 1 if not Then 0
  31. local Error = 0 -- 0 = No Error and 1 = Error
  32. local Way = 0 -- 0 = Left and 1 = Right
  33.  
  34. --Checking
  35. local function Check()
  36.     if torch == 0 then
  37.         print("There are no torch's in Turtle")
  38.         Error = 1
  39.     else
  40.         print("There are torch's in turtle")
  41.     end
  42.     if chest == 0 then
  43.         print("there are no chests")
  44.         Error = 1
  45.     else
  46.         print("There are chest in turtle")
  47.     end
  48.     if ItemFuel == 0 then
  49.         print("No Fuel Items")
  50.         error = 1
  51.     else
  52.         print("there is fuel")
  53.     end
  54.     repeat
  55.         if turtle.getFuelLevel() == "unlimited" then
  56.             print("NO NEED FOR FUEL")
  57.             Needfuel = 0
  58.         elseif turtle.getFuelLevel() < 100 then
  59.             turtle.select(3)
  60.             turtle.refuel(1)
  61.             Needfuel = 1
  62.             ItemFuel = ItemFuel - 1
  63.         elseif NeedFuel == 1 then
  64.             Needfuel = 0
  65.         end
  66.     until NeedFuel == 0
  67. end
  68.  
  69. -- Recheck if user forget something turtle will check after 15 sec
  70. local function Recheck()
  71.     torch = turtle.getItemCount(1)
  72.     chest = turtle.getItemCount(2)
  73.     ItemFuel = turtle.getItemCount(3)
  74.     Error = 0
  75. end
  76.  
  77. --Mining
  78. local function ForwardM()
  79.     repeat
  80.         if turtle.detect() then
  81.             turtle.dig()
  82.         end
  83.         if turtle.forward() then -- sometimes sand and gravel and block and mix-up distance
  84.             TF = TF - 1
  85.             onlight = onlight + 1
  86.         end
  87.         if turtle.detectUp() then
  88.             turtle.digUp()
  89.         end
  90.         turtle.select(4)
  91.         turtle.placeDown()
  92.         if onlight == 8 then -- Every 10 Block turtle place torch
  93.             if torch > 0 then
  94.                 turtle.turnLeft()
  95.                 turtle.turnLeft()
  96.                 turtle.select(1)
  97.                 turtle.place()
  98.                 turtle.turnLeft()
  99.                 turtle.turnLeft()
  100.                 torch = torch - 1
  101.                 onlight = onlight - 8
  102.             else
  103.                 print("turtle run out of torchs")
  104.                 os.shutdown()
  105.             end
  106.         end
  107.         if turtle.getItemCount(16)>0 then -- If slot 16 in turtle has item slot 5 to 16 will go to chest
  108.             if chest > 0 then
  109.                 turtle.select(2)
  110.                 turtle.digDown()
  111.                 turtle.placeDown()
  112.                 chest = chest - 1
  113.                 for slot = 5, 16 do
  114.                     turtle.select(slot)
  115.                     turtle.dropDown()
  116.                     sleep(1.5)
  117.                 end
  118.                 turtle.select(5)
  119.             else
  120.                 print("turtle run out of chest")
  121.                 os.shutdown()
  122.             end
  123.         end
  124.         repeat
  125.             if turtle.getFuelLevel() == "unlimited" then
  126.                 print("NO NEED FOR FUEL")
  127.                 Needfuel = 0
  128.             elseif turtle.getFuelLevel() < 100 then
  129.                 turtle.select(3)
  130.                 turtle.refuel(1)
  131.                 Needfuel = 1
  132.                 ItemFuel = ItemFuel - 1
  133.             elseif ItemFuel == 0 then
  134.                 print("turtle run out of fuel")
  135.                 os.shutdown()
  136.             elseif NeedFuel == 1 then
  137.                 Needfuel = 0
  138.             end
  139.         until NeedFuel == 0
  140.     until TF == 0
  141. end
  142.  
  143. --Warm Up For Back Program
  144. local function WarmUpForBackProgram() -- To make turn around so it can go back
  145.     turtle.turnLeft()
  146.     turtle.turnLeft()
  147.     turtle.up()
  148. end
  149.  
  150. --Back Program
  151. local function Back()
  152.     repeat
  153.         if turtle.forward() then -- sometimes sand and gravel and block and mix-up distance
  154.             TB = TB - 1
  155.         end
  156.         if turtle.detect() then -- Sometimes sand and gravel can happen and this will fix it
  157.             if TB ~= 0 then
  158.                 turtle.dig()
  159.             end
  160.         end
  161.     until TB == 0
  162. end
  163.  
  164. -- Multimines Program
  165. local function MultiMines()
  166.     if Way == 1 then
  167.         turtle.turnLeft()
  168.         turtle.down()
  169.     else
  170.         turtle.turnRight()
  171.         turtle.down()
  172.     end
  173.     repeat
  174.         if turtle.detect() then
  175.             turtle.dig()
  176.         end
  177.         if turtle.forward() then
  178.             MD = MD - 1
  179.         end
  180.         if turtle.detectUp() then
  181.             turtle.digUp()
  182.         end
  183.     until MD == 0
  184.     if Way == 1 then
  185.         turtle.turnLeft()
  186.     else
  187.         turtle.turnRight()
  188.     end
  189.     if MineTimes == 0 then
  190.         print("Turtle is done")
  191.     else
  192.         MineTimes = MineTimes - 1
  193.     end
  194. end
  195.  
  196. -- Restart
  197. local function Restart()
  198.     TF = distance
  199.     TB = distance
  200.     MD = 3
  201.     onlight = 0
  202. end
  203.  
  204. -- EmptyInv
  205. local function EmptyInv()
  206. if turtle.getItemCount(16) ~= 0 then
  207.  turtle.dig()
  208.  turtle.select(1)
  209.  turtle.place()
  210.  for i = 2,16 do
  211.    turtle.select(i)
  212.    turtle.drop()
  213.  end
  214.  turtle.select(1)
  215.  turtle.dig()
  216. end
  217. end
  218.  
  219. -- Starting
  220. function Start()
  221.     repeat
  222.         ForwardM()
  223.         WarmUpForBackProgram()
  224.         Back()
  225.         MultiMines()
  226.         EmptyInv()
  227.         Restart()
  228.     until MineTimes == 0
  229. end
  230.  
  231. -- Start
  232. print("Hi There Welcome to Mining Turtle Program")
  233. print("How Far Will Turtle Go")
  234. input = io.read()
  235. distance = tonumber(input)
  236. TF = distance
  237. TB = distance
  238. print("Left or Right")
  239. print("0 = Left and 1 = Right")
  240. input2 = io.read()
  241. Way = tonumber(input2)
  242. print("How Many Times")
  243. input3 = io.read()
  244. MineTimes = tonumber(input3)
  245. Check()
  246. if Error == 1 then
  247.         sleep(10)
  248.         Recheck()
  249.         Check()
  250.     until Error == 0
  251. end
  252. Start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement