Advertisement
Roukanken

Untitled

Jan 14th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. function string.startswith(String,Start)
  2. return string.sub(String,1,string.len(Start))==Start
  3. end
  4.  
  5. --[[ returns table of aspects--]]
  6. function scanItem(itemdata, network, analyzer)
  7. if not itemdata.is_item then
  8. return nil
  9. end
  10.  
  11. fingerprint = itemdata.fingerprint
  12. print("Scanning ", fingerprint.id)
  13.  
  14. if string.startswith(fingerprint.id, "Forestry:bee") then
  15. return nil
  16. end
  17.  
  18. detail = network.getItemDetail(fingerprint)
  19. if detail == nil then
  20. return nil
  21. end
  22.  
  23. detail = detail.all()
  24.  
  25. network.exportItem(fingerprint, "UP", 1)
  26.  
  27. res = nil
  28. if analyzer.hasItem() and analyzer.itemHasAspects() then
  29. res = analyzer.getAspectCount()
  30. end
  31.  
  32. network.pullItem("UP", 1)
  33.  
  34. if not (res == nil) then
  35. res.name = detail.display_name
  36. end
  37.  
  38. return res
  39. end
  40.  
  41. function compare(a, b)
  42. return a.count < b.count
  43. end
  44.  
  45. arg = ...
  46.  
  47. analyzer_side = "tt_aspectanalyzer_0"
  48. network_side = "back"
  49.  
  50. network = peripheral.wrap(network_side)
  51. analyzer = peripheral.wrap(analyzer_side)
  52.  
  53. if not (arg == nil) then
  54. result = {}
  55.  
  56. item_list = network.getAvailableItems()
  57. for key, item in pairs(item_list) do
  58. aspects = scanItem(item, network, analyzer)
  59.  
  60. if aspects and not (aspects[arg] == nil) then
  61. table.insert(result, {count = aspects[arg], name = aspects.name})
  62. end
  63. end
  64.  
  65. print("Scanning complete")
  66. table.sort(result, compare)
  67.  
  68. for i, v in ipairs(result) do
  69. print(v.count, " ", v.name)
  70. end
  71. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement