Jyzarc

JyNet 2.0

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