Bydon

Untitled

Dec 25th, 2015
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. monitor = peripheral.wrap("left")
  2.  
  3. chest1 = peripheral.wrap("chest_1")
  4. chest2 = peripheral.wrap("chest_2")
  5.  
  6. letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  7.  
  8. items = {}
  9. sortedItems = {}
  10. tableLength = 0
  11.  
  12. function addChest(chest)
  13.   for i = 1, chest.getInventorySize(), 1 do
  14.     item = chest.getStackInSlot(i)
  15.     if item ~= null then
  16.       if items[item["display_name"]] == null then
  17.         itemEntry = {}
  18.         itemEntry["name"] = item["display_name"]
  19.         itemEntry["qty"] = item["qty"]
  20.         items[item["display_name"]] = itemEntry
  21.         tableLength = tableLength + 1
  22.         sortedItems[tableLength] = itemEntry
  23.       else
  24.         items[item["display_name"]]["qty"] = items[item["display_name"]]["qty"] + item["qty"]
  25.       end
  26.     end
  27.   end
  28. end
  29.  
  30. function addChests()
  31.   tableLength = 0
  32.   items = {}
  33.   sortedItems = {}
  34.   addChest(chest1)
  35.   addChest(chest2)
  36. end
  37.  
  38. function sort()
  39.   for i = tableLength - 1, 1, -1 do
  40.     for j = 1, i, 1 do
  41.       if string.find(letters, string.sub(sortedItems[j]["name"], 1, 1)) > string.find(letters, string.sub(sortedItems[j + 1]["name"], 1, 1)) then
  42.         temp = sortedItems[j]
  43.         sortedItems[j] = sortedItems[j+1]
  44.         sortedItems[j+1] = temp
  45.       end
  46.     end
  47.   end  
  48. end
  49.  
  50. function refreshMonitor()
  51.   monitor.setTextScale(0.5)
  52.   monitor.setCursorPos(1, 1)
  53.   monitor.clear()
  54.   for k, v in pairs(sortedItems) do
  55.     monitor.write(v["name"] .. ": " .. v["qty"])
  56.     x, y = monitor.getCursorPos()
  57.     monitor.setCursorPos(1, y + 1)
  58.   end
  59. end
  60.  
  61. while true do
  62.   addChests()
  63.   sort()
  64.   refreshMonitor()
  65.   sleep(5)
  66. end
Advertisement
Add Comment
Please, Sign In to add comment