Advertisement
Vodka51200

farmwoodsimple

Feb 9th, 2025
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.73 KB | Gaming | 0 0
  1. -- Programme de minage d'arbres avec une turtle de ComputerCraft
  2.  
  3. local firstslot = 1
  4. local lastslot = 14
  5. local coalslot = 16
  6. local emptyslot = "right"
  7. local saplingslot = 15
  8. local fuel = turtle.getFuelLevel()
  9.  
  10. -- Fonction pour vérifier et recharger le carburant
  11. function checkFuel()
  12.     while turtle.getFuelLevel() < 20 do
  13.         term.setTextColor(colors.red)
  14.         print("Carburant faible, en attente de charbon...")
  15.         term.setTextColor(colors.white)
  16.         local item = turtle.getItemDetail(coalslot)
  17.         if item and item.name == "minecraft:coal" or item.name == "dartcraftreloaded:goldenpowersource" then
  18.             turtle.select(coalslot)
  19.             turtle.refuel(1)
  20.             checkFuelLevel()
  21.             turtle.select(firstslot)
  22.             break
  23.         end
  24.         sleep(60) -- Attend 60 secondes avant de vérifier à nouveau
  25.     end
  26. end
  27.  
  28. function checkFuelLevel()
  29.     term.setTextColor(colors.orange)
  30.     print("Fuel: " .. turtle.getFuelLevel())
  31.     term.setTextColor(colors.white)
  32. end
  33.  
  34. -- Fonction pour vider l'inventaire dans un coffre autour de la turtle
  35. function emptyInventory()
  36.     if turtle.getItemCount(lastslot) > 0 then
  37.         for slot = firstslot, lastslot do
  38.             if turtle.getItemCount(slot) > 0 then
  39.                 turtle.select(slot)
  40.                 if emptyslot == "down" then
  41.                     turtle.dropDown()
  42.                 elseif emptyslot == "up" then
  43.                     turtle.dropUp()
  44.                 elseif emptyslot == "right" then
  45.                     turtle.turnRight()
  46.                     turtle.drop()
  47.                     turtle.turnLeft()
  48.                 elseif emptyslot == "left" then
  49.                     turtle.turnLeft()
  50.                     turtle.drop()
  51.                     turtle.turnRight()
  52.                 elseif emptyslot == "back" then
  53.                     turtle.turnRight()
  54.                     turtle.turnRight()
  55.                     turtle.drop()
  56.                     turtle.turnLeft()
  57.                     turtle.turnLeft()
  58.                 else
  59.                     print("haha")
  60.                 end
  61.             end
  62.         end
  63.     end
  64. end
  65.  
  66. -- Fonction pour vérifier et recharger les saplings
  67. function checkSaplings()
  68.     if turtle.getItemCount(saplingslot) == 0 then
  69.         term.setTextColor(colors.yellow)
  70.         print("Pas de jeunes arbres, vérification du coffre...")
  71.         term.setTextColor(colors.white)
  72.         if emptyslot == "down" then
  73.             turtle.suckDown()
  74.         elseif emptyslot == "up" then
  75.             turtle.suckUp()
  76.         elseif emptyslot == "right" then
  77.             turtle.turnRight()
  78.             turtle.select(saplingslot)
  79.             turtle.suck(10)
  80.             turtle.turnLeft()
  81.         elseif emptyslot == "left" then
  82.             turtle.turnLeft()
  83.             turtle.select(saplingslot)
  84.             turtle.suck(10)
  85.             turtle.turnRight()
  86.         elseif emptyslot == "back" then
  87.             turtle.turnRight()
  88.             turtle.turnRight()
  89.             turtle.suck(10)
  90.             turtle.turnLeft()
  91.             turtle.turnLeft()
  92.         else
  93.             print("haha")
  94.         end
  95.     end
  96. end
  97.  
  98. -- Fonction principale pour couper un arbre
  99. function chopTree()
  100.     local success, data = turtle.inspect()
  101.     if success then
  102.         -- Si c'est déjà un arbre, le couper directement
  103.         if data.name == "minecraft:log" or data.name == "dartcraftreloaded:forcelog" then
  104.             term.setTextColor(colors.blue)
  105.             print("Arbre détecté, coupe en cours...")
  106.             term.setTextColor(colors.white)
  107.         -- Sinon, si c'est un jeune arbre, attendre qu'il pousse
  108.         elseif data.name == "minecraft:sapling" or data.name == "dartcraftreloaded:force_sapling" then
  109.             term.setTextColor(colors.blue)
  110.             print("Jeune arbre détecté, en attente de croissance...")
  111.             term.setTextColor(colors.white)
  112.             while true do
  113.                 success, data = turtle.inspect()
  114.                 if success and (data.name == "minecraft:log" or data.name == "dartcraftreloaded:forcelog") then
  115.                     break
  116.                 end
  117.                 sleep(10) -- Attend 10 secondes avant de vérifier à nouveau
  118.             end
  119.         else
  120.             print("Nom de bloc non reconnu: " .. data.name)
  121.             print("Ajout de ce bloc à la liste des blocs connus.")
  122.             return
  123.         end
  124.  
  125.         -- Mine l'arbre jusqu'au sommet
  126.         while success and (data.name == "minecraft:log" or data.name == "dartcraftreloaded:forcelog") do
  127.             turtle.dig()
  128.             turtle.digUp()
  129.             turtle.up()
  130.             checkFuelLevel()
  131.             success, data = turtle.inspect()
  132.         end
  133.     end
  134.     term.setTextColor(colors.green)
  135.     print("Arbre coupé, retour à la base.")
  136.     term.setTextColor(colors.white)
  137.  
  138.     -- Retourne à la base
  139.     while not turtle.detectDown() do
  140.         turtle.down()
  141.         checkFuelLevel()
  142.     end
  143.  
  144.     -- Place un sapling
  145.     turtle.select(saplingslot)
  146.     if turtle.getItemCount(saplingslot) == 0 then
  147.         checkSaplings()
  148.     end
  149.     if turtle.getItemCount(saplingslot) > 0 then
  150.         turtle.place()
  151.     else
  152.         term.setTextColor(colors.red)
  153.         print("Pas de jeunes arbres disponibles!")
  154.         term.setTextColor(colors.white)
  155.     end
  156.     turtle.select(firstslot)
  157. end
  158.  
  159. -- Boucle principale
  160. while true do
  161.     checkFuel()
  162.  
  163.     -- Vérifie l'inventaire et vide si nécessaire
  164.     if turtle.getItemCount(lastslot) > 0 then
  165.         term.setTextColor(colors.red)
  166.         print("Inventaire plein, vidange...")
  167.         term.setTextColor(colors.white)
  168.         emptyInventory()
  169.     end
  170.     turtle.select(firstslot)
  171.     -- Lance la coupe d'arbre
  172.     chopTree()
  173. end
Tags: computecraft
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement