Files
Paradise/code/datums/wires/radio.dm
2020-01-28 21:25:20 +00:00

53 lines
1.3 KiB
Plaintext

/datum/wires/radio
holder_type = /obj/item/radio
wire_count = 3
#define RADIO_WIRE_SIGNAL 1
#define RADIO_WIRE_RECEIVE 2
#define RADIO_WIRE_TRANSMIT 4
/datum/wires/radio/GetWireName(index)
switch(index)
if(RADIO_WIRE_SIGNAL)
return "Signal"
if(RADIO_WIRE_RECEIVE)
return "Receiver"
if(RADIO_WIRE_TRANSMIT)
return "Transmitter"
/datum/wires/radio/CanUse(mob/living/L)
var/obj/item/radio/R = holder
if(R.b_stat)
return 1
return 0
/datum/wires/radio/UpdatePulsed(index)
var/obj/item/radio/R = holder
switch(index)
if(RADIO_WIRE_SIGNAL)
R.listening = !R.listening && !IsIndexCut(RADIO_WIRE_RECEIVE)
R.broadcasting = R.listening && !IsIndexCut(RADIO_WIRE_TRANSMIT)
if(RADIO_WIRE_RECEIVE)
R.listening = !R.listening && !IsIndexCut(RADIO_WIRE_SIGNAL)
if(RADIO_WIRE_TRANSMIT)
R.broadcasting = !R.broadcasting && !IsIndexCut(RADIO_WIRE_SIGNAL)
..()
/datum/wires/radio/UpdateCut(index, mended)
var/obj/item/radio/R = holder
switch(index)
if(RADIO_WIRE_SIGNAL)
R.listening = mended && !IsIndexCut(RADIO_WIRE_RECEIVE)
R.broadcasting = mended && !IsIndexCut(RADIO_WIRE_TRANSMIT)
if(RADIO_WIRE_RECEIVE)
R.listening = mended && !IsIndexCut(RADIO_WIRE_SIGNAL)
if(RADIO_WIRE_TRANSMIT)
R.broadcasting = mended && !IsIndexCut(RADIO_WIRE_SIGNAL)
..()