Advertisement
giwdul

miner

Jun 9th, 2025
544
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.34 KB | Source Code | 0 0
  1. -- CONFIG
  2. local whitelist = {
  3.   ["minecraft:coal_ore"] = true,
  4.   ["minecraft:iron_ore"] = true,
  5.   ["minecraft:gold_ore"] = true,
  6.   ["minecraft:diamond_ore"] = true,
  7.   ["minecraft:redstone_ore"] = true,
  8.   ["minecraft:lapis_ore"] = true
  9. }
  10.  
  11. local branchLength = 30
  12. local branchesPerSide = 5
  13. local fuelThreshold = 100
  14.  
  15. -- UTILS
  16. function refuelIfNeeded()
  17.   if turtle.getFuelLevel() < fuelThreshold then
  18.     for i = 1, 16 do
  19.       turtle.select(i)
  20.       if turtle.refuel(1) then
  21.         print("Refueled")
  22.         break
  23.       end
  24.     end
  25.   end
  26. end
  27.  
  28. function inventoryFull()
  29.   for i = 1, 16 do
  30.     if turtle.getItemCount(i) == 0 then
  31.       return false
  32.     end
  33.   end
  34.   return true
  35. end
  36.  
  37. function emptyInventory()
  38.   print("Déchargement...")
  39.   for i = 1, 16 do
  40.     turtle.select(i)
  41.     turtle.drop()
  42.   end
  43. end
  44.  
  45. function isValuable()
  46.   local success, data = turtle.inspect()
  47.   if success and whitelist[data.name] then
  48.     return true
  49.   end
  50.   return false
  51. end
  52.  
  53. function digSafe()
  54.   if turtle.detect() then
  55.     local success, data = turtle.inspect()
  56.     if data and data.name == "minecraft:lava" then
  57.       print("Lave détectée, évitée.")
  58.       return false
  59.     end
  60.     turtle.dig()
  61.   end
  62.   return true
  63. end
  64.  
  65. function mineForward()
  66.   if digSafe() then
  67.     turtle.forward()
  68.   end
  69. end
  70.  
  71. -- MINING LOGIC
  72. function mineBranch()
  73.   for i = 1, branchLength do
  74.     if inventoryFull() then
  75.       goBack(i)
  76.       emptyInventory()
  77.       returnToBranch(i)
  78.     end
  79.     if isValuable() then
  80.       turtle.dig()
  81.     end
  82.     mineForward()
  83.     turtle.digUp()
  84.     turtle.digDown()
  85.   end
  86.   -- Retour à la galerie principale
  87.   turtle.turnLeft()
  88.   turtle.turnLeft()
  89.   for i = 1, branchLength do
  90.     turtle.forward()
  91.   end
  92.   turtle.turnRight()
  93. end
  94.  
  95. function goBack(steps)
  96.   turtle.turnLeft()
  97.   turtle.turnLeft()
  98.   for i = 1, steps do
  99.     turtle.forward()
  100.   end
  101.   turtle.turnRight()
  102.   turtle.turnRight()
  103. end
  104.  
  105. function returnToBranch(steps)
  106.   for i = 1, steps do
  107.     mineForward()
  108.   end
  109. end
  110.  
  111. -- MAIN PROGRAM
  112. refuelIfNeeded()
  113.  
  114. for side = 1, 2 do
  115.   for b = 1, branchesPerSide do
  116.     print("Branche "..b.." côté "..side)
  117.     turtle.turnRight()
  118.     mineForward()
  119.     turtle.turnLeft()
  120.     mineBranch()
  121.   end
  122.   -- Changement de côté
  123.   turtle.turnLeft()
  124.   turtle.turnLeft()
  125. end
  126.  
  127. print("Minage terminé.")
  128.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement