problemlow

CertusFactory2.0

Jul 29th, 2025
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.49 KB | None | 0 0
  1. function refuel()
  2.     print("Starting Fuel: ", turtle.getFuelLevel())
  3.     while turtle.getFuelLevel() < 32 do
  4.         turtle.select(4)
  5.         worked = turtle.refuel(1)
  6.         if worked == false then
  7.             print("Put fuel in my last slot and press enter")
  8.             read()
  9.         end
  10.     end
  11.     print("Ending Fuel: ", turtle.getFuelLevel())
  12. end
  13.  
  14.  
  15. function getRedstone()
  16.     levels = {}
  17.     levels.f = redstone.getAnalogInput("front")
  18.     levels.b = redstone.getAnalogInput("back")
  19.     levels.l = redstone.getAnalogInput("left")
  20.     levels.r = redstone.getAnalogInput("right")
  21.     temp = levels
  22.     for _, level in pairs(temp) do
  23.         print(level)
  24.         -- If any level is greater than 0, return true immediately
  25.         if level > 0 then
  26.             levels.presant = true
  27.             found = true
  28.             break
  29.         end
  30.     end
  31.     if found == false then
  32.         levels.presant = false
  33.     end
  34.     -- If the loop completes, it means no level was greater than 0
  35.     return levels
  36. end
  37.  
  38.  
  39. function redstoneOrient()
  40.     levels = getRedstone()
  41.     print("f:", levels.f, "b:", levels.b, "r:", levels.r, "l:", levels.l, "presant:", levels.presant)
  42.     if levels.presant == true then
  43.         if levels.l == 15 then
  44.             print("I'm home")
  45.         elseif levels.f == 15 then
  46.             turtle.turnRight()
  47.         elseif levels.b == 15 then
  48.             turtle.turnLeft()
  49.         elseif levels.r == 15 then
  50.             turtle.turnRight()
  51.             turtle.turnRight()
  52.         end
  53.     end
  54.     return levels.presant
  55. end
  56.  
  57.  
  58. function searchString(bigString, searchString)
  59.     if bigString ~= nil and searchString ~= nil then
  60.         if bigString.match(bigString, searchString) == nil then
  61.             return false
  62.         else
  63.             return true
  64.         end
  65.     else
  66.         return false
  67.     end
  68. end
  69.  
  70.  
  71. function inspect()
  72.     tf, data = turtle.inspect()
  73.     tfD, dataD = turtle.inspectDown()
  74.     tfF, dataU = turtle.inspectUp()
  75.  
  76.     print(tf, data.name)
  77.     print(tfD, dataD.name)
  78.     print(tfU, dataU.name)
  79.     results = {}
  80.     results.f = data.name
  81.     results.d = dataD.name
  82.     results.u = dataU.name
  83.     return results
  84. end
  85.  
  86.  
  87. function count(slotNumber)
  88.     return turtle.getItemCount(slotNumber)
  89. end
  90.  
  91.  
  92. function mineDir(direction)
  93.     results = inspect()
  94.     if direction == "f" then
  95.         if searchString(tostring(results.f), "bud") or searchString(tostring(results.f), "cluster") or searchString(tostring(results.f), "nil") then
  96.             print("mineDir Front - Okay: mining", results.f)
  97.             turtle.dig()
  98.             return true
  99.         else
  100.             print("mineDir Front - Somethings wrong I shouldnt mine this", results.f)
  101.             read()
  102.             return false
  103.         end
  104.     end
  105.     if direction == "d" then
  106.         if searchString(tostring(results.d), "block") then
  107.             print("mineDir Down - Okay: mining", results.d)
  108.             turtle.digDown()
  109.             return true
  110.         elseif searchString(tostring(results.d), "budding") then
  111.             return true
  112.         else
  113.             print("mineDir Down - Somethings wrong I shouldnt mine this", results.d)
  114.             read()
  115.             return false
  116.         end
  117.     end
  118. end
  119.  
  120.  
  121. function digF()
  122.     return mineDir("f")
  123. end
  124.  
  125.  
  126. function digD()
  127.     return mineDir("d")
  128. end
  129.  
  130.  
  131.  
  132.  
  133. function suck()
  134.     turtle.select(1)
  135.     turtle.suckDown()
  136.     turtle.suckDown()
  137.     turtle.suckDown()
  138.     turtle.suckDown()
  139.     turtle.suck()
  140.     turtle.suck()
  141.     turtle.suck()
  142.     turtle.suck()
  143. end
  144.  
  145.  
  146. function orient()
  147.     results = inspect()
  148.     if redstoneOrient() == true then
  149.         return true
  150.     elseif searchString(tostring(results.f), "bud") == true then
  151.         print("meme")
  152.         read()
  153.         return false
  154.     else
  155.         print("Im not home. HELP!")
  156.         read()
  157.         return false
  158.     end
  159. end
  160.  
  161.  
  162. function mineCluster()
  163.     turtle.select(5)
  164.     result = digF()
  165.     if result == false then
  166.         print("mineCluster Front - Im not where im supposed to be. Crashing")
  167.         temp = 0/0
  168.         return false
  169.     end
  170.     moved = turtle.forward()
  171.     while moved == false do
  172.         turtle.select(5)
  173.         result = digF()
  174.         if result == false then
  175.             print("mineCluster Front - Im not where im supposed to be. Crashing")
  176.             temp = 0/0
  177.             return false
  178.         end
  179.         moved = turtle.forward()
  180.     end
  181.  
  182.     turtle.select(1)
  183.     result = digD()
  184.     if result == false then
  185.         print("mineCluster Down - Im not where im supposed to be. Crashing")
  186.         temp = 0/0
  187.         return false
  188.     end
  189.     turtle.placeDown()
  190.     turtle.back()
  191.     turtle.turnLeft()
  192. end
  193.  
  194.  
  195. function mineClusters()
  196.     mineCluster()
  197.     mineCluster()
  198.     mineCluster()
  199.     mineCluster()
  200. end
  201.  
  202.  
  203. function chargeQuartz()
  204.     itera = 0
  205.     while count(5) > 2 and count(3) < 48 and itera < 20 do
  206.         turtle.select(5)
  207.         turtle.drop(1)
  208.         turtle.select(3)
  209.         worked = false
  210.         timeout = 0
  211.         while worked == false and timeout < 3 do -- suck and wait .2 seconds until charged recieved
  212.             sleep(.2)
  213.             worked = turtle.suck()
  214.             timeout = timeout + .2
  215.         end
  216.         itera = itera+1
  217.     end
  218. end
  219.  
  220.  
  221. function restoreBlocks()
  222.     itera = 0
  223.     while count(1) < 6 and itera < 10 and count(2) > 0 do
  224.         if count(2) == 0 then
  225.             print("I need more certus blocks in slot 2")
  226.             read()
  227.         end
  228.         turtle.select(2)
  229.         turtle.dropDown()
  230.         turtle.select(3)
  231.         turtle.dropDown()
  232.         sleep(3)
  233.         suck()
  234.         itera = itera + 1
  235.     end
  236. end
  237.  
  238. function processItems()
  239.     chargeQuartz()
  240.     restoreBlocks()
  241.     cleanupInv()
  242. end
  243.  
  244.  
  245. function cleanupInv()
  246.     if count(3) > 45 then
  247.         turtle.select(3)
  248.         turtle.dropUp(count(3)-45)
  249.     end
  250.     turtle.select(5)
  251.     if count(5) > 2 then
  252.         turtle.dropUp(count(5)-2)
  253.     end
  254.     for i = 6, 16 do
  255.         turtle.select(i)
  256.         turtle.dropUp()
  257.     end
  258. end
  259.  
  260.  
  261. suck()
  262. if orient() == true then
  263.     while true do
  264.         refuel()
  265.         orient()
  266.         suck()
  267.         turtle.back()
  268.         turtle.back()
  269.         turtle.back()
  270.         turtle.down()
  271.         mineClusters()
  272.         turtle.up()
  273.         turtle.forward()
  274.         turtle.forward()
  275.         turtle.forward()
  276.         processItems()
  277.         print("Pausing 60 seconds for growth")
  278.         sleep(60)
  279.     end
  280. else
  281.     print("I dont know where I am")
  282. end
Advertisement
Add Comment
Please, Sign In to add comment