Files
vgstation13/code/modules/media/broadcast/receiver.dm
ShiftyRail ade19f2fc7 Fix doublejuke songs (#26802)
* Maybe fix double juke songs?

* Comment out debug

* Fix soundsystems
2020-06-12 21:33:25 -05:00

48 lines
1.4 KiB
Plaintext

// frequency => list(listeners)
var/global/media_receivers=list()
///////////////////////
// RECEIVERS
///////////////////////
/obj/machinery/media/receiver
var/media_frequency = 1234 // 123.4 MHz
var/media_crypto = null // Crypto key
/obj/machinery/media/receiver/New()
..()
connect_frequency()
/obj/machinery/media/receiver/proc/receive_broadcast(var/url="", var/start_time=0, var/finish_time=0)
media_url = url
media_start_time = start_time
media_finish_time = finish_time
update_music()
/obj/machinery/media/receiver/proc/connect_frequency()
// This is basically media_receivers["[media_frequency]"] += src
var/list/receivers=list()
var/freq = num2text(media_frequency)
if(freq in media_receivers)
receivers = media_receivers[freq]
receivers.Add(src)
media_receivers[freq]=receivers
// Check if there's a broadcast to tune into.
if(freq in media_transmitters)
// Pick a random broadcast in that frequency.
var/obj/machinery/media/transmitter/B = pick(media_transmitters[freq])
if(B.media_crypto == media_crypto) // Crypto-key check, if needed.
receive_broadcast(B.media_url,B.media_start_time)
/obj/machinery/media/receiver/proc/disconnect_frequency()
var/list/receivers=list()
var/freq = num2text(media_frequency)
if(freq in media_receivers)
receivers = media_receivers[freq]
receivers.Remove(src)
media_receivers[freq]=receivers
receive_broadcast()