Jyzarc

JyNetAPI

Dec 30th, 2013
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.75 KB | None | 0 0
  1. local JyNetChannel = 127
  2. local allFreqs = false
  3. local side,freq,id,message,senderChannel,num,_
  4. local frequencies = {}
  5.  
  6. function setJyNetChannel(num)
  7.     JyNetChannel = num
  8. end
  9.  
  10. function getJyNetChannel()
  11.     return JyNetChannel
  12. end
  13.  
  14. function open(side)
  15.     if peripheral.getType(side) == "modem" then
  16.         peripheral.call(side,"open",JyNetChannel)
  17.         return true
  18.     else
  19.         return false
  20.     end
  21. end
  22.  
  23. function close(side)
  24.     if peripheral.getType(side) == "modem" then
  25.         peripheral.call(side,"close",JyNetChannel)
  26.         return true
  27.     else
  28.         return false
  29.     end
  30. end
  31.  
  32. function isOpen(side)
  33.     return peripheral.call(side,"isOpen",JyNetChannel)
  34. end
  35.  
  36. function openAll()
  37.     for i = 1,6 do
  38.         open(rs.getSides()[i])
  39.     end
  40. end
  41.  
  42. function closeAll()
  43.     for i = 1,6 do
  44.         close(rs.getSides()[i])
  45.     end
  46. end
  47.  
  48. function addFreq(freq)
  49.     if not frequencies[freq] then
  50.         frequencies[freq] = true
  51.         return true
  52.     else
  53.         return false
  54.     end
  55. end
  56.  
  57. function removeFreq(freq)
  58.     if frequencies[freq] then
  59.         frequencies[freq] = false
  60.         return true
  61.     else
  62.         return false
  63.     end
  64. end
  65.  
  66. function addAll()
  67.     allFreqs = true
  68. end
  69.  
  70. function removeAll()
  71.     allFreqs = false
  72. end
  73.  
  74. function getFreq(freq)
  75.     return frequencies[freq]
  76. end
  77.  
  78. function send(message,freq,side,id)
  79.     message = textutils.serialize{freq,message}
  80.     if peripheral.getType(side) == "modem" then
  81.         peripheral.call(side,"transmit",JyNetChannel,id,message)
  82.         return true
  83.     else
  84.         return false
  85.     end
  86. end
  87.  
  88. function recieve()
  89.     senderChannel = 0
  90.     freq = nil
  91.     while senderChannel ~= JyNetChannel or not (frequencies[freq] or allFreqs) do
  92.         _,side,senderChannel,id,message = os.pullEvent("modem_message")
  93.         freq = textutils.unserialize(message)[1]
  94.         message = textutils.unserialize(message)[2]
  95.     end
  96.     return message,id,freq,side
  97. end
Advertisement
Add Comment
Please, Sign In to add comment