ecco7777

item aspect scanner

Sep 23rd, 2017
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.66 KB | None | 0 0
  1. me=peripheral.wrap("tileinterface_7")
  2. p=peripheral.wrap("top")
  3. itemByAspect={}
  4. items=me.getAvailableItems()
  5. aspectsByName={iter=1,tutamen=2,bestia=3,victus=4,metallum=5,gelum=6,machina=7,tenebrae=8,terra=9,meto=10,potentia=11,ordo=12,sano=13,corpus=14,messis=15,humanus=16,tempus=17,herba=18,permutatio=19,pannus=20,fames=21,spiritus=22,lux=23,limus=24,mortuus=25,tempestas=26,perfodio=27,auram=28,fabrico=29,volatus=30,aqua=31,venenum=32,arbor=33,exanimis=34,vacuos=35,ignis=36,lucrum=37,sensus=38,aer=39,alienis=40,motus=41,vitreus=42,telum=43,vinculum=44,praecantatio=45,vitium=46,cognitio=47,perditio=48,instrumentum=49}
  6. aspectsByNumber={"iter","tutamen","bestia","victus","metallum","gelum","machina","tenebrae","terra","meto","potentia","ordo","sano","corpus","messis","humanus","tempus","herba","permutatio","pannus","fames","spiritus","lux","limus","mortuus","tempestas","perfodio","auram","fabrico","volatus","aqua","venenum","arbor","exanimis","vacuos","ignis","lucrum","sensus","aer","alienis","motus","vitreus","telum","vinculum","praecantatio","vitium","cognitio","perditio","instrumentum"}
  7.  
  8.  
  9.  
  10. for i=1,49 do
  11. itemByAspect[i]=0
  12. end
  13.  
  14. function scan()
  15. for i=1,#items do
  16. --for i=1,42 do
  17. me.exportItem(items[i].fingerprint,"down",1)
  18. aspects=p.getAspects()
  19. if aspects~=nil then
  20. for i2=1,#aspects do
  21. if itemByAspect[aspectsByName[aspects[i2]]]==0 then
  22. itemByAspect[aspectsByName[aspects[i2]]]={}
  23. end
  24. item={}
  25. item["aspects"]=p.getAspectCount(aspects[2])
  26. item["fingerprint"]=items[i].fingerprint
  27. itemByAspect[aspectsByName[aspects[i2]]][#itemByAspect[aspectsByName[aspects[i2]]]+1]=item
  28.  
  29. end
  30. term.clear()
  31. term.setCursorPos(1,1)
  32. term.write(i.."/"..#items)
  33. end
  34. me.pullItem('down',1)
  35. end
  36. shell.run("mkdir aspects")
  37. for i=1,49 do
  38. fp=fs.open("aspects/"..i,"w")
  39. fp.write("aspects="..textutils.serialize(itemByAspect[i]))
  40. fp.close()
  41. end
  42. end
  43.  
  44. function getAspects()
  45. itemByAspect={}
  46. for i=1,49 do
  47. shell.run("aspects/"..i)
  48. itemByAspect[i]=aspects
  49. end
  50. end
  51.  
  52. function dump()
  53. print("Bitte warten")
  54. for i=1,300 do
  55. me.pullItem("up",i+3)
  56. end
  57. end
  58.  
  59. function main()
  60. getAspects()
  61. aspectnames=""
  62. for i=1,49 do
  63. if itemByAspect[i]~=0 then
  64. aspectnames=aspectnames..aspectsByNumber[i]..","
  65. end
  66. end
  67. term.clear()
  68. term.setCursorPos(1,1)
  69. print(aspectnames)
  70. print("\nGebe einen Aspekt ein fuer die Items die rausgesucht werden sollen")
  71. print("\nGebe 'dump' ein um die Box wieder zu leeren")
  72. aspect=io.read()
  73. if aspect=='dump' then
  74. dump()
  75. end
  76. if aspect=='scan' then
  77. scan()
  78. end
  79. if aspectsByName[aspect]~=nil then
  80. for i=1,#itemByAspect[aspectsByName[aspect]] do
  81. me.exportItem(itemByAspect[aspectsByName[aspect]][i].fingerprint,"up",1)
  82. end
  83. end
  84.  
  85. end
  86.  
  87. while true do
  88. main()
  89. end
Add Comment
Please, Sign In to add comment