DrFair

list

Jan 27th, 2013
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. dir = "+Y"
  2. n = 0
  3.  
  4. local directions = { [0]=0,[1]=1,[2]=2,[3]=3,[4]=4,[5]=5,["down"] = 0, ["up"] = 1, ["-Z"] = 2, ["+Z"] = 3, ["-X"] = 4, ["+X"] = 5, ["+Y"] = 1, ["-Y"] = 0}
  5. sorter = peripheral.wrap("back")
  6.  
  7. function getitem(dir,invdir)
  8. itemcount = 0
  9. for id,count in pairs(sorter.list(directions[invdir])) do
  10. itemid = id
  11. itemcount = itemcount + count
  12. end
  13. end
  14.  
  15. function update()
  16. getitem("back",dir)
  17. n = n + 1
  18. print("Sent update #"..n)
  19. if itemcount > 0 then
  20. item = { [1]="item", [2]=itemname, [3]=itemcount }
  21. text = textutils.serialize(item)
  22. rednet.broadcast(text)
  23. else
  24. item = { [1]="item", [2]=itemname, [3]=0 }
  25. text = textutils.serialize(item)
  26. rednet.broadcast(text)
  27. end
  28. end
  29.  
  30. if fs.exists("i") then
  31. local file = io.open("i","r")
  32. itemname = file.read()
  33. print("Item name: "..itemname)
  34. rednet.open("bottom")
  35. update()
  36. active = true
  37. else
  38. print("No itemname!")
  39. active = false
  40. end
  41.  
  42. while active do
  43. event,id,message = os.pullEvent()
  44. if event == "rednet_message" then
  45. order = textutils.unserialize(message)
  46. if message == "updatestock" then
  47. update()
  48. end
  49. if string.sub(message,1,1) == "{" then
  50. if order[1] == "order"..itemname then
  51. extracted = order[2]
  52. while extracted > 0 do
  53. if extracted >= 64 then
  54. sorter.extract(directions[dir],itemid,directions["-Y"],64)
  55. extracted = extracted - 64
  56. else
  57. sorter.extract(directions[dir],itemid,directions["-Y"],extracted)
  58. extracted = 0
  59. end
  60. os.sleep(0.2)
  61. end
  62. update()
  63. end
  64. end
  65. end
  66. end
Advertisement
Add Comment
Please, Sign In to add comment