Advertisement
giwdul

display_chest_content_CC

Jun 30th, 2023 (edited)
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.74 KB | None | 0 0
  1. -- Display the content in real time of a chest on a monitor
  2.  
  3. -- Enveloppe le moniteur sur le dessus
  4. local monitor = peripheral.wrap("top")
  5.  
  6. -- Enveloppe le coffre sur le côté gauche
  7. local chest = peripheral.wrap("left")
  8.  
  9. local oldContents = {}
  10.  
  11. while true do
  12.     -- Obtient les éléments du coffre
  13.     local items = chest.list()
  14.    
  15.     -- Crée une table pour stocker les quantités totales de chaque item
  16.     local totals = {}
  17.  
  18.     -- Ajoute les quantités de chaque item
  19.     for slot, item in pairs(items) do
  20.         if totals[item.name] == nil then
  21.             totals[item.name] = item.count
  22.         else
  23.             totals[item.name] = totals[item.name] + item.count
  24.         end
  25.     end
  26.  
  27.     -- Vérifie si des changements ont été faits
  28.     local isChange = false
  29.     for item, count in pairs(totals) do
  30.         if oldContents[item] == nil or oldContents[item] ~= count then
  31.             isChange = true
  32.         end
  33.         oldContents[item] = count
  34.     end
  35.  
  36.     -- Vérifie si des éléments ont été retirés
  37.     for item, count in pairs(oldContents) do
  38.         if totals[item] == nil then
  39.             isChange = true
  40.             oldContents[item] = nil
  41.         end
  42.     end
  43.  
  44.     if isChange then
  45.         -- Redirige la sortie vers le moniteur
  46.         term.redirect(monitor)
  47.  
  48.         -- Nettoie l'écran du moniteur
  49.         term.clear()
  50.  
  51.         -- Affiche les informations sur le moniteur
  52.         for item, count in pairs(totals) do
  53.             print("Item: " .. item)
  54.             print("Total Quantity: " .. count)
  55.             print("-----------")
  56.         end
  57.     end
  58.    
  59.     -- Attendez pendant un certain temps avant de vérifier à nouveau
  60.     -- Ici, nous attendons pendant 5 secondes
  61.     os.sleep(0)
  62. end
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement