Advertisement
Vodka51200

miningnether 1.12.2 / 1.16.5

Jul 4th, 2017 (edited)
437
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 21.54 KB | None | 0 0
  1. local id = 6 -- id du monitor qui recois
  2. local cobalt = "Cobalt" --1.12.2 1.16.5
  3. local cnb = 0
  4. local ardite = "Ardite" -- 1.12.2
  5. local anb = 0
  6. local vibranium = "Vibranium" -- 1.16.5
  7. local vnb = 0
  8. local debris = "Debris" -- 1.16.5
  9. local dnb = 0
  10. -- local ressources = {
  11. --   {nom = "Cobalt", quantite = 0},
  12. --   {nom = "Ardite", quantite = 0},
  13. --   {nom = "Vibranium", quantite = 0},
  14. --   {nom = "Debris", quantite = 0}
  15. -- }
  16. -- local cobaltCount = ressources[1].quantite
  17. local ligne = 0
  18. local colonne = 0
  19. local profondeur = 0
  20. local premierSlot = 1
  21. local dernierSlot = 13
  22. local chestNetherrack = 14
  23. local chestCharbon = 15
  24. local charbonSlot = 16
  25. local dir = 0
  26. local ligneEnCour = 0
  27. local idChannel = 8899 -- n'est pas utiliser
  28. local esquive = 0
  29. local EnvoieRednet = {}
  30. local Etat = "En cours"
  31. local Mob = "Pas de Mob"
  32. local z = 0 -- 0
  33. local y = 0 -- 0
  34. local tourne = ""
  35. local descend = ""
  36. local MAX_ITEMS_TO_SUCK = 30
  37. local MIN_ITEMS_TO_KEEP = 5
  38.  
  39. local version = "1.12.2"
  40. local modem = peripheral.find("modem") -- Remplacez "modem" par le nom de votre modem
  41. rednet.open("left")
  42.  
  43. function printText(txt1, color1)
  44.     local oldColor = term.getTextColor() -- sauvegarde de la couleur courante
  45.   term.setTextColor(color1)
  46.   print(txt1)
  47.   term.setTextColor(oldColor) -- restauration de la couleur courante
  48. end
  49.  
  50. function printDoubleText(txt1, color1, txt2, color2)
  51.     local oldColor = term.getTextColor() -- sauvegarde de la couleur courante
  52.   term.setTextColor(color1)
  53.   term.write(txt1)
  54.   term.setTextColor(color2)
  55.   term.write(txt2)
  56.   term.setTextColor(oldColor) -- restauration de la couleur courante
  57.   print("")
  58. end
  59.  
  60. function printCenter(txt,color)
  61.     local w, h = term.getSize()
  62.     paintutils.drawFilledBox(math.floor(w/2-txt:len()/2+.5-1),6,math.floor(w/2+txt:len()/2+.5),8,colors.cyan)
  63.     term.setCursorPos(math.floor(w/2-txt:len()/2+.5),h/2+1)
  64.     local oldColorTxt = term.getTextColor() -- sauvegarde de la couleur courante
  65.     --local oldColorBackground = term.getBackgroundColor() -- sauvegarde de la couleur courante
  66.     term.setTextColor(color)
  67.     print(txt)
  68.     sleep(2)
  69.     term.setBackgroundColor(colors.gray)
  70.     term.setTextColor(oldColorTxt) -- restauration de la couleur courante
  71. end
  72. -- initialiser le tableau des blocs minés
  73. local blocks = {}
  74.  
  75. local printerPageSize = 21 -- nombre maximum de lignes que peut afficher une page sur l'imprimante
  76.  
  77. -- fonction pour imprimer les pages
  78. local function printPages(blockList)
  79.   local printer = peripheral.find("printer")
  80.   if printer then
  81.     local pageCount = math.ceil(#blockList/printerPageSize) -- nombre de pages nécessaires
  82.     -- vérifier que l'utilisateur veut vraiment imprimer autant de pages
  83.     local confirm = false
  84.     while not confirm do
  85.       term.clear()
  86.       term.setCursorPos(1,1)
  87.       print("Number of pages: " .. pageCount)
  88.       print("Ink required: " .. pageCount*5 .. " units")
  89.       print("Paper required: " .. pageCount .. " sheets")
  90.       write("Print? (y/n): ")
  91.       local answer = read()
  92.       if answer == "y" then
  93.         if not printer.newPage() then
  94.             --printText("need ink and paper",colors.red)
  95.             printCenter("Need ink and paper",colors.red)
  96.             sleep(2)
  97.             return
  98.         else
  99.             confirm = true
  100.             --printText("success",colors.green)
  101.             printCenter("Success",colors.green)
  102.             sleep(2)
  103.         end
  104.       elseif answer == "n" then
  105.         answer = ""
  106.         return
  107.       end
  108.     end
  109.     -- imprimer chaque page
  110.     local page = 1
  111.     while page <= pageCount do
  112.       printer.newPage()
  113.       printer.setCursorPos(1,1)
  114.       printer.write("Blocks Mined (Page " .. page .. "/" .. pageCount .. "):")
  115.       for i = (page-1)*printerPageSize+1,math.min(page*printerPageSize,#blockList) do
  116.         printer.setCursorPos(1,i%printerPageSize+1)
  117.         printer.write("- " .. blockList[i])
  118.       end
  119.       printer.endPage()
  120.       page = page + 1
  121.       -- demander si l'utilisateur veut imprimer la page suivante
  122.       if page <= pageCount then
  123.         local confirm = false
  124.         while not confirm do
  125.           term.clear()
  126.           term.setCursorPos(1,1)
  127.           write("Print page " .. page .. "? (y/n): ")
  128.           local answer = read()
  129.           if answer == "y" then
  130.             if not printer.newPage() then
  131.                     --printText("need ink and paper",colors.red)
  132.                     printCenter("Need ink and paper",colors.red)
  133.                     sleep(2)
  134.                     return
  135.                 else
  136.                     confirm = true
  137.                     --printText("success",colors.green)
  138.                     printCenter("Success",colors.green)
  139.                     sleep(2)
  140.                 end
  141.           elseif answer == "n" then
  142.             return
  143.           end
  144.         end
  145.       end
  146.     end
  147.   else
  148.     --print("No printer found.")
  149.     --printText("No printer found",colors.red)
  150.     printCenter("No printer found!",colors.red)
  151.     sleep(2)
  152.   end
  153. end
  154. -------------------------------------
  155. --fonction pour afficher les blocs et leur quantité avec pagination
  156. local function displayBlocks(blocks)
  157.   local page = 1
  158.   local pageSize = 8
  159.   local blockList = {}
  160.   for block, data in pairs(blocks) do
  161.   print(block)
  162.   local colonIndex = string.find(block, ":", 1, true)
  163.   print(colonIndex)
  164.   local name = string.sub(block, 1, colonIndex - 1)
  165.   print(name)
  166.   local metadata = string.sub(block, colonIndex + 1)
  167.   print(metadata)
  168.   local count = data.count
  169.   print(count)
  170.   -- local metadata = getBlockMetadata(block)
  171.   -- print(metadata)
  172.   -- if block.name == "tconstruct:ore" then --1.12.2
  173.   --   if block.metadata == 0 then
  174.   --     name = "Cobalt"
  175.   --   elseif block.metadata == 1 then
  176.   --     name = "Ardite"
  177.   --   end
  178.   -- end
  179.  
  180.   -- return name
  181.   --table.insert(blockList, name .. " (Type: " .. metadata .. ") x" .. count)
  182.   table.insert(blockList, metadata .. " x" .. count)
  183.   end
  184.   sleep(2)
  185.   while true do
  186.     --afficher la page courante
  187.     term.clear()
  188.     term.setCursorPos(1,1)
  189.     --print(blockList)
  190.     local totalPages = math.ceil(#blockList / pageSize)
  191.     print("Blocks Mined (Page " .. page .. " of " .. totalPages .. "):")
  192.     for i = (page-1)*pageSize+1,page*pageSize do
  193.       if blockList[i] then
  194.         print("- " .. blockList[i])
  195.       else
  196.         break
  197.       end
  198.     end
  199.     term.setCursorPos(1,11)
  200.     printText("press 'enter' for print menu",colors.yellow)
  201.     term.setCursorPos(1,12)
  202.     printText("press 'q' for quit",colors.red)
  203.     --attendre une entrée clavier pour passer à la page suivante ou précédente
  204.     local event, key = os.pullEvent("key")
  205.     if key == keys.right and #blockList > page*pageSize then
  206.       page = page + 1
  207.     elseif key == keys.left and page > 1 then
  208.       page = page - 1
  209.     elseif key == keys.enter then
  210.     -- Appeler la fonction pour imprimer les pages
  211.     printPages(blockList)
  212.     --else
  213.     elseif key == keys.q then
  214.       printCenter("Terminer",colors.red)
  215.       sleep(2)
  216.       break
  217.       --return displayMenu()
  218.     end
  219.   end
  220. end
  221.  
  222. local function getBlockMetadata(block)
  223.   if not block then
  224.     return 0
  225.   end
  226.   return block.metadata or 0
  227. end
  228.  
  229. local function displayMenu()
  230.   term.clear()
  231.   term.setCursorPos(1,1)
  232.   printText("=== MENU ===",colors.yellow)
  233.   --print("=== MENU ===")
  234.   print("Press 1 for Blocks Mined")
  235.   print("Press 2 for Printer")
  236.   while true do
  237.     local event, key = os.pullEvent("key")
  238.     if key == keys.one then
  239.       displayBlocks(blocks)
  240.       break
  241.     elseif key == keys.two then
  242.       displayPrinterMenu() -- pas functionnel
  243.       break
  244.     end
  245.   end
  246. end
  247.  
  248. -- fonction pour afficher les blocs et leur quantité sans pagination
  249. -- local function displayBlocks(blocks)
  250. --   print("Blocks Mined:")
  251. --   for block, count in pairs(blocks) do
  252. --     local colonIndex = string.find(block, ":", 1, true)
  253. --  local name = string.sub(block, colonIndex + 1)
  254. --  print("-" .. name .. " x" .. count)
  255. --   end
  256. -- end
  257.  
  258.  -- fonction pour envoyer les données au moniteur
  259. local function sendBlocks(blocks)
  260.   local message = textutils.serializeJSON(blocks)
  261.   modem.transmit(1, 1, message)
  262. end
  263.  
  264. function envoie()
  265.   while true do
  266.     EnvoieRednet = {Tourne=tourne,Descend=descend,NivFuel=turtle.getFuelLevel(),Monstre=Mob,
  267.     Cobalt=cnb,Ardite=anb,Vibranium=vnb,Debris=dnb,LigneEnCour=ligneEnCour,Colonne=z,Profondeur=y,Etat=Etat,
  268.     ProfondeurMax=profondeur,colonneMax=colonne,ligneMax=ligne,Charbon=turtle.getItemCount(charbonSlot),slot=scantest()}
  269.  
  270.     rednet.send(id,textutils.serialise(EnvoieRednet))
  271.     --rednet.broadcast(textutils.serialise(EnvoieRednet), channel) -- envoyer les données sur le canal personnalisé
  272.     sleep(0.5)
  273.   end
  274. end
  275.  
  276. -- Table des minerais à éviter
  277. -- local oresToAvoid = {
  278. --   ["tconstruct:ore"] = {
  279. --     [0] = "cobalt_ore", -- 1.12.2
  280. --     [1] = "ardite_ore"  -- 1.12.2
  281. --   },
  282. --   ["minecraft:ancient_debris"] = true, -- 1.16.5
  283. --   ["allthemodium:vibranium_ore"] = true -- 1.16.5
  284. -- }
  285.  
  286. -- Fonction pour vérifier si un minerai doit être évité
  287. -- function shouldAvoidOre(oreName, oreMetadata)
  288. --   if not oresToAvoid[oreName] then
  289. --     return false
  290. --   end
  291. --   if type(oresToAvoid[oreName]) == "boolean" then
  292. --     return true
  293. --   end
  294. --   return oresToAvoid[oreName][oreMetadata] ~= nil
  295. -- end
  296.  
  297. function esquive()
  298.     turtle.turnRight()
  299.     turtle.dig()
  300.     turtle.forward()
  301.     turtle.turnLeft()
  302.     turtle.dig()
  303.     turtle.forward()
  304.     turtle.dig()
  305.     turtle.forward()
  306.     turtle.turnLeft()
  307.     turtle.dig()
  308.     turtle.forward()
  309.     turtle.turnRight()
  310.     ligneEnCour = ligneEnCour +2   
  311. end
  312.  
  313. function scantest()
  314. local items ={}
  315.     for i = premierSlot,dernierSlot do
  316. local data = turtle.getItemDetail(i)
  317.         if data then
  318.             items[i]={name=data.name,count=data.count}
  319.         end
  320.     end
  321.     return items
  322. end
  323.  
  324. function refuel()
  325.     if turtle.getFuelLevel() < 10 then
  326.       turtle.select(charbonSlot)
  327.           turtle.refuel(5)
  328.           rechargeCharbon()
  329.     end
  330.     turtle.select(premierSlot)
  331. end
  332.  
  333. function ifItemCharbonSlot() -- il faut regarder si ces autre que du charbon
  334.     if turtle.getItemCount() >= 1 then
  335.         local item = turtle.getItemDetail()
  336.     if item and item.name == "minecraft:coal" then
  337.             return true
  338.         --elseif item.name == "thermalfoundation:material" and item.damage == 802 then --1.12.2 coal coke
  339.     --  return true
  340.     else
  341.             turtle.drop()
  342.             return false
  343.         end
  344.     end
  345. end
  346.  
  347. -- Fonctions
  348. local function checkInventory()
  349.     if turtle.getItemCount() <= MIN_ITEMS_TO_KEEP then
  350.         return true
  351.     end
  352.     return false
  353. end
  354.  
  355. local function suckItems(direction, maxItems)
  356.     for i = 1, maxItems do
  357.         if not turtle.suck(direction) then
  358.             break
  359.         end
  360.     end
  361. end
  362.  
  363. function rechargeCharbon()
  364. Etat = "rechargeCharbon"
  365. turtle.select(charbonSlot)
  366.     if checkInventory() then
  367.         if not turtle.digUp() then
  368.             turtle.digDown()
  369.             turtle.select(chestCharbon)
  370.             turtle.placeDown()
  371.             turtle.select(charbonSlot)
  372.             ifItemCharbonSlot()
  373.             turtle.suckDown(MAX_ITEMS_TO_SUCK)
  374.             turtle.select(chestCharbon)
  375.             turtle.digDown()
  376.             turtle.select(premierSlot) -- pas obliger a voir
  377.             sleep(0.5)
  378.         else
  379.             turtle.select(chestCharbon)
  380.             turtle.placeUp()
  381.             turtle.select(charbonSlot)
  382.             ifItemCharbonSlot()
  383.             turtle.suckUp(MAX_ITEMS_TO_SUCK)
  384.             turtle.select(chestCharbon)
  385.             turtle.digUp()
  386.             turtle.select(premierSlot) -- pas obliger a voir
  387.             sleep(0.5)
  388.         end
  389.     end
  390.     refuel() -- pas obliger a voir
  391.   Etat = "En cours"
  392. end
  393.  
  394. -- Chat gpt
  395. -- function Attack()
  396.   -- local hasAttacked = false
  397.   -- while not hasAttacked do
  398.     ----Move forward and attempt to attack any mobs in the way
  399.     -- if turtle.detect() then
  400.       -- turtle.attack()
  401.       -- hasAttacked = true
  402.     -- elseif not turtle.forward() then
  403.       ----If turtle cannot move forward, stop attacking
  404.       -- hasAttacked = true
  405.     -- end
  406.   -- end
  407.   -- print(ligneEnCour)
  408.   -- print(z)
  409.   -- print(y)
  410.   -- getFuelLevel()
  411. -- end
  412.  
  413.  function Attack()
  414.     if turtle.attack() then
  415.         turtle.attack()
  416.         sleep(0.5)
  417.         turtle.attack()
  418.         sleep(0.5)
  419.         turtle.attack()
  420.         sleep(0.5)
  421.         turtle.attack()
  422.         sleep(0.5)
  423.         turtle.attack()
  424.         sleep(0.5)
  425.         turtle.attack()
  426.         sleep(0.5)
  427.         turtle.attack()
  428.         sleep(0.5)
  429.         turtle.attack()
  430.         sleep(0.5)
  431.         turtle.attack()
  432.         sleep(0.5)
  433.         turtle.attack()
  434.         sleep(0.5)
  435.         turtle.attack()
  436.         sleep(0.5)
  437.         turtle.attack()
  438.         sleep(0.5)
  439.     else
  440.     print("je ne peut pas attaquer")
  441.     sleep(1)
  442.     end
  443.     print("menace eliminer")
  444.     --refuel() -- pas obliger a voir
  445.  end
  446.  
  447.  
  448. function forward()
  449.   turtle.select(premierSlot)
  450.   turtle.dig()
  451.   --print("je creuse")
  452.     if not turtle.forward() then
  453.       Mob = "Il y a un mob"
  454.       Attack()
  455.       Mob = "Plus de Mob"
  456.       --turtle.forward()
  457.     else
  458.         return true
  459.     end
  460. end
  461.  
  462. function videInventaire()
  463.     Etat = "videInventaire"
  464.     turtle.select(chestNetherrack)
  465.     if not turtle.placeUp() then
  466.         print("Je ne peux pas enlever en haut je place en bas")
  467.         turtle.digDown()
  468.         turtle.placeDown()
  469.         vidageDown()
  470.     else
  471.         print("Je peux placer en haut")
  472.         vidageUp()
  473.     end
  474.   --turtle.digDown()
  475.   --turtle.placeDown()
  476.   --vidageDown()
  477. end
  478.  
  479. function vidageUp()
  480. local slot
  481.     for slot=premierSlot,dernierSlot do
  482.         turtle.select(slot)
  483.         while turtle.getItemCount(slot) > 0 do
  484.             turtle.dropUp(turtle.getItemCount(slot))
  485.         end
  486.     end
  487.     turtle.select(chestNetherrack)
  488.     sleep(0.5)
  489.     print("je recupere la turtle")
  490.     turtle.digUp()
  491.     Etat = "En cours"
  492. end
  493.  
  494. function vidageDown()
  495. local slot
  496.     for slot=premierSlot,dernierSlot do
  497.         turtle.select(slot)
  498.         while turtle.getItemCount(slot) > 0 do
  499.             turtle.dropDown(turtle.getItemCount(slot))
  500.         end
  501.     end
  502.     turtle.select(chestNetherrack)
  503.     sleep(0.5)
  504.     print("je recupere la turtle")
  505.     turtle.digDown()
  506.     Etat = "En cours"
  507. end
  508.  
  509. function scan()
  510.   local success, i = turtle.inspect()
  511.     if success then
  512.         local block = i.name
  513.             if i.state and i.state.type then
  514.                 block = block .. ":" .. i.state.type
  515.             end
  516.             if not blocks[block] then
  517.                 blocks[block] = { count = 0 }
  518.             end
  519.             blocks[block].count = blocks[block].count + 1
  520.     end
  521.     -- Code pour vérifier si un minerai doit être évité et appeler la fonction esquive() si nécessaire
  522.     -- if shouldAvoidOre(i.name, i.metadata) then
  523.     --  print(i.name .. " : je ne le mine pas")
  524.     --  esquive()
  525.     if i.name == "tconstruct:ore" and i.metadata == 0 then --1.12.2
  526.   --if i.name == "tconstruct:cobalt_ore" then -- 1.16.5
  527.     print(i.name,cobalt)
  528.     print("je mine pas le cobalt")
  529.     cnb = cnb + 1
  530.     esquive()
  531.   elseif i.name == "tconstruct:ore" and i.metadata == 1 then --1.12.2
  532.     print(i.name,ardite)
  533.     print("je mine pas l'ardite")
  534.     anb = anb + 1
  535.     esquive()
  536.   elseif i.name == "minecraft:ancient_debris" then --1.16.5
  537.     print(i.name,debris)
  538.     print("je mine pas l'ancien debris")
  539.     dnb = dnb + 1
  540.     esquive()
  541.   elseif i.name == "allthemodium:vibranium_ore" then -- 1.16.5
  542.     print(i.name,vibranium)
  543.     print("je mine pas le vibranium")
  544.     vnb = vnb + 1
  545.     esquive()
  546.     else
  547.     forward()
  548.     if turtle.getItemCount(dernierSlot) >= 1 then
  549.       print("videInventaire")
  550.       videInventaire()
  551.     end
  552.     ligneEnCour = ligneEnCour +1
  553.   end
  554. end
  555.  
  556. function changeDir()
  557.   if dir == 0 then
  558.     turtle.turnRight()
  559.     turtle.dig()
  560.     turtle.forward()
  561.     turtle.turnRight()
  562.     dir = dir+1
  563.     tourne = "je vais a droite"
  564.     --sleep(2)
  565.     tourne = "Je fais rien"
  566.   elseif dir == 1 then
  567.     turtle.turnLeft()
  568.     turtle.dig()
  569.     turtle.forward()
  570.     turtle.turnLeft()
  571.     dir = dir-1
  572.     tourne = "je vais a gauche"
  573.     --sleep(2)
  574.     tourne = "Je fais rien"
  575.   end
  576. end
  577.  
  578. function changeDirBottom()
  579.     turtle.turnRight()
  580.     turtle.turnRight()
  581.     turtle.digDown()
  582.     turtle.down()
  583.     descend = "je descend"
  584.     --sleep(2)
  585.     descend = "Je fais rien"
  586. end
  587.  
  588. -- function videInventaire()
  589.   -- Etat = "videInventaire"
  590.   -- local slot
  591.   -- turtle.select(chestNetherrack)
  592.   -- while not turtle.placeUp() do
  593.     -- sleep(0.1)
  594.     -- print("je peut pas placer en haut")
  595.     -- if not turtle.attackUp() then turtle.digUp() end
  596.   -- end
  597.   -- for slot=premierSlot,dernierSlot do
  598.     -- turtle.select(slot)
  599.     -- while turtle.getItemCount(slot) > 0 do
  600.       -- turtle.dropUp(turtle.getItemCount(slot))
  601.       -- if turtle.getItemCount(slot) > 0 then
  602.         -- sleep(0.5)
  603.       -- end
  604.     -- end
  605.   -- end
  606.   -- turtle.select(chestNetherrack)
  607.   -- turtle.digUp()
  608.   -- Etat = "En cours"
  609. -- end
  610.  
  611. function deplacement()
  612. if turtle.getFuelLevel() == 0 then -- check if we ran out of fuel
  613.     rechargeCharbon()
  614. end
  615. turtle.inspect()
  616. turtle.dig()
  617. turtle.forward()
  618.   for i=1, profondeur do
  619.     --print("debut while profondeur")
  620.     for j=1, colonne do
  621.     z = j
  622.       --print("debut while colonne")
  623.       ligneEnCour = 1
  624.       while ligneEnCour <= ligne-1 do
  625.         --print('debut while ligne')
  626.         refuel()
  627.         --print("Fuel: " ..turtle.getFuelLevel())
  628.         scan()
  629.         --print('fin du scan')
  630.       end
  631.      -- print('fin while ligne')
  632.       if j ~= colonne then
  633.         changeDir()
  634.         --print("Colonne: " ..j)
  635.         --print('fin while colonne')
  636.       end
  637.       --print('je tourne')
  638.     end
  639.     rechargeCharbon()
  640.     y = i
  641.     changeDirBottom()
  642.     --print("Profondeur: " ..i)
  643.     --print("je dessens")
  644.   end
  645.     --print("debut while profondeur")
  646.     for j=1, colonne do
  647.     z = j
  648.       --print("debut while colonne")
  649.       ligneEnCour = 1
  650.       while ligneEnCour <= ligne-1 do
  651.         --print('debut while ligne')
  652.         refuel()
  653.         --print("Fuel: " ..turtle.getFuelLevel())
  654.         scan()
  655.         --print('fin du scan')
  656.       end
  657.       --print('fin while ligne')
  658.       if j ~= colonne then
  659.         changeDir()
  660.         --print("Colonne :" ..j)
  661.         --print('fin while colonne')
  662.       end
  663.       --print('je tourne')
  664.     end
  665.     rechargeCharbon()
  666. end
  667.  
  668. --------------------------------------------
  669. --------------- Programme ------------------
  670. --------------------------------------------
  671. function prog()
  672. term.setBackgroundColor(colors.gray)
  673. term.clear()
  674. term.setCursorPos(1,1)
  675.  
  676. printDoubleText("La version est : ", colors.yellow, version, colors.green)
  677.  
  678. paintutils.drawFilledBox(2,2,2,2,colors.white)
  679. paintutils.drawFilledBox(3,2,3,2,colors.white)
  680. paintutils.drawFilledBox(4,2,4,2,colors.white)
  681. paintutils.drawFilledBox(5,2,5,2,colors.white)
  682.  
  683. paintutils.drawFilledBox(2,3,2,3,colors.white)
  684. paintutils.drawFilledBox(3,3,3,3,colors.white)
  685. paintutils.drawFilledBox(4,3,4,3,colors.white)
  686. paintutils.drawFilledBox(5,3,5,3,colors.white)
  687.  
  688. paintutils.drawFilledBox(2,4,2,4,colors.white)
  689. paintutils.drawFilledBox(3,4,3,4,colors.white)
  690. paintutils.drawFilledBox(4,4,4,4,colors.white)
  691. paintutils.drawFilledBox(5,4,5,4,colors.white)
  692.  
  693. paintutils.drawFilledBox(2,5,2,5,colors.white)
  694. paintutils.drawFilledBox(3,5,3,5,colors.white)
  695. paintutils.drawFilledBox(4,5,4,5,colors.white)
  696. paintutils.drawFilledBox(5,5,5,5,colors.white)
  697. term.setBackgroundColor(colors.gray)
  698.  
  699. local items ={}
  700.     for i = 14,16 do
  701. local data = turtle.getItemDetail(i)
  702.     if data then
  703.         if turtle.getItemCount(14) >= 1 then
  704.             items[i]={name=data.name,count=data.count}
  705.             if data.name == "minecraft:coal" then -- test
  706.                 paintutils.drawFilledBox(5,5,5,5,colors.black)
  707.                 term.setBackgroundColor(colors.gray)
  708.                 --term.setCursorPos(1,6)
  709.                 --name = "coal x" .. data.count -- test
  710.                 --print(name)
  711.             elseif data.name == "enderstorage:ender_storage" then -- test
  712.                 paintutils.drawFilledBox(3,5,3,5,colors.yellow)
  713.                 paintutils.drawFilledBox(4,5,4,5,colors.brown)
  714.                 term.setBackgroundColor(colors.gray)
  715.                 --term.setCursorPos(1,7)
  716.                 --name = "ender chest x" .. data.count -- test
  717.                 --print(name)
  718.            
  719.             else
  720.                 term.setCursorPos(2,6)
  721.                 print(data.name .. " x" .. data.count)
  722.                 paintutils.drawFilledBox(5,5,5,5,colors.red)
  723.             end
  724.         end
  725.     else
  726.     paintutils.drawFilledBox(5,5,5,5,colors.white)
  727.     term.setBackgroundColor(colors.gray)
  728.     term.setCursorPos(1,7)
  729.     printText("mettre les items:", colors.red)
  730.     printText("enderchest dans slot 14", colors.red)
  731.     printText("enderChestCharbon dans slot 15", colors.red)
  732.     printText("coal dans slot 16", colors.red)
  733.     sleep(10)
  734.     os.reboot()
  735.     end
  736. end
  737.  
  738.  
  739. term.setBackgroundColor(colors.gray)
  740. term.setCursorPos(1,8)
  741. printText("Entrez les dimensions de la zone a miner:", colors.yellow)
  742. print("")
  743. printText("ligne (en face): ", colors.yellow)
  744. ligne = tonumber(read())
  745. printText("colonne (vers la droite): ", colors.yellow)
  746. colonne = tonumber(read())
  747. printText("profondeur (en dessous): ", colors.yellow)
  748. profondeur = tonumber(read())
  749.  
  750. printText("lignes: "..ligne.."  colonne: "..colonne.."  profondeur: "..profondeur, colors.yellow)
  751. local sum2 = (ligne * colonne)
  752. local sum3 = (ligne * colonne * profondeur)
  753. printDoubleText("carré de ", colors.green, sum2.. " m2", colors.yellow)
  754. printDoubleText("cube de ", colors.green, sum3.. " m3", colors.yellow)
  755. printText("Valider les données? (oui/non) : ", colors.yellow)
  756.  
  757. while not confirm2 do
  758. local valider = read()
  759.     if valider == "oui" or valider == "Oui" then
  760.         term.clear()
  761.         confirm2 = true
  762.     elseif valider == "non" then
  763.         --valider = ""
  764.         --return
  765.         os.reboot()
  766.     end
  767. end
  768.  
  769. rechargeCharbon()
  770.  
  771. if turtle.getFuelLevel() >= 64 then -- (profondeur*ligne*colonne)
  772.     deplacement()
  773. else
  774.     print("je reprend du charbon")
  775.     rechargeCharbon()
  776.     print("Fuel: " ..turtle.getFuelLevel())
  777.     deplacement()
  778.     if turtle.getItemCount(dernierSlot) >= 1 then
  779.         videInventaire()
  780.     end
  781. end
  782.     print("fin while profondeur")
  783.     videInventaire()
  784.     Etat = "Terminer"
  785.     turtle.select(premierSlot)
  786.     sleep(1)
  787. end
  788. parallel.waitForAny(prog,envoie)
  789.  
  790. -- envoyer les données au moniteur
  791. sendBlocks(blocks)
  792. -- afficher le Menu
  793. displayMenu()
  794. -- afficher les blocs et leur quantité
  795. --displayBlocks(blocks)
  796.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement