Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local JyNet = {
- channel = 127,
- allFreqs = false,
- frequencies = {}
- }
- function JyNet.setChannel(num)
- JyNet.channel = num
- end
- function JyNet.getChannel()
- return JyNet.channel
- end
- function JyNet.isOpen(side)
- return peripheral.call(side,"isOpen",channel)
- end
- function JyNet.open(side)
- if peripheral.getType(side) == "modem"
- and not JyNet.isOpen(side) then
- peripheral.call(side,"open",JyNet.channel)
- return true
- else
- return false
- end
- end
- function JyNet.close(side)
- if peripheral.getType(side) == "modem"
- and JyNet.isOpen(side) then
- peripheral.call(side,"close",channel)
- return true
- else
- return false
- end
- end
- function JyNet.openAll()
- for i = 1,6 do
- JyNet.open(rs.getSides()[i])
- end
- end
- function JyNet.closeAll()
- for i = 1,6 do
- JyNet.close(rs.getSides()[i])
- end
- end
- function JyNet.getState(freq)
- return JyNet.frequencies[freq]
- end
- function JyNet.addFreq(freq)
- if not JyNet.frequencies[freq] then
- JyNet.frequencies[freq] = true
- return true
- else
- return false
- end
- end
- function JyNet.removeFreq(freq)
- if JyNet.frequencies[freq] then
- JyNet.frequencies[freq] = false
- return true
- else
- return false
- end
- end
- function JyNet.addAll()
- JyNet.allFreqs = true
- end
- function JyNet.removeAll()
- JyNet.allFreqs = false
- end
- function JyNet.send(message,freq,side,id)
- JyNet.message = textutils.serialize{freq,message}
- if peripheral.getType(side) == "modem" then
- peripheral.call(side,"transmit",JyNet.channel,id,message)
- return true
- else
- return false
- end
- end
- function JyNet.recieve()
- JyNets.senderChannel = 0
- JyNet.freq = nil
- while JyNet.senderChannel ~= JyNet.channel or not (JyNet.frequencies[JyNet.freq] or JyNet.allFreqs) do
- _,JyNet.side,JyNet.senderChannel,JyNet.id,JyNet.message = os.pullEvent("modem_message")
- _ = nil
- JyNet.freq = textutils.unserialize(JyNet.message)[1]
- JyNet.message = textutils.unserialize(JyNet.message)[2]
- end
- return JyNet.message,JyNet.id,JyNet.freq,JyNet.side
- end
Advertisement
Add Comment
Please, Sign In to add comment