mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Docking ports still don't use filters though, as it would mess with the docking ports that are also airlocks. Docking is infrequent though so it should be fine.
79 lines
2.4 KiB
Plaintext
79 lines
2.4 KiB
Plaintext
/obj/machinery/embedded_controller
|
|
var/datum/computer/file/embedded_program/program //the currently executing program
|
|
|
|
name = "Embedded Controller"
|
|
anchored = 1
|
|
|
|
use_power = 1
|
|
idle_power_usage = 10
|
|
|
|
var/on = 1
|
|
|
|
/obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line)
|
|
return 0
|
|
|
|
/obj/machinery/embedded_controller/receive_signal(datum/signal/signal, receive_method, receive_param)
|
|
if(!signal || signal.encryption) return
|
|
|
|
if(program)
|
|
program.receive_signal(signal, receive_method, receive_param)
|
|
//spawn(5) program.process() //no, program.process sends some signals and machines respond and we here again and we lag -rastaf0
|
|
|
|
/obj/machinery/embedded_controller/process()
|
|
if(program)
|
|
program.process()
|
|
|
|
update_icon()
|
|
src.updateDialog()
|
|
|
|
/obj/machinery/embedded_controller/attack_ai(mob/user as mob)
|
|
src.ui_interact(user)
|
|
|
|
/obj/machinery/embedded_controller/attack_paw(mob/user as mob)
|
|
user << "You do not have the dexterity to use this."
|
|
return
|
|
|
|
/obj/machinery/embedded_controller/attack_hand(mob/user as mob)
|
|
src.ui_interact(user)
|
|
|
|
/obj/machinery/embedded_controller/ui_interact()
|
|
return
|
|
|
|
/obj/machinery/embedded_controller/radio
|
|
icon = 'icons/obj/airlock_machines.dmi'
|
|
icon_state = "airlock_control_standby"
|
|
power_channel = ENVIRON
|
|
density = 0
|
|
|
|
var/id_tag
|
|
//var/radio_power_use = 50 //power used to xmit signals
|
|
|
|
var/frequency = 1379
|
|
var/radio_filter = null
|
|
var/datum/radio_frequency/radio_connection
|
|
unacidable = 1
|
|
|
|
/obj/machinery/embedded_controller/radio/initialize()
|
|
set_frequency(frequency)
|
|
|
|
/obj/machinery/embedded_controller/radio/update_icon()
|
|
if(on && program)
|
|
if(program.memory["processing"])
|
|
icon_state = "airlock_control_process"
|
|
else
|
|
icon_state = "airlock_control_standby"
|
|
else
|
|
icon_state = "airlock_control_off"
|
|
|
|
/obj/machinery/embedded_controller/radio/post_signal(datum/signal/signal, var/filter = null)
|
|
signal.transmission_method = TRANSMISSION_RADIO
|
|
if(radio_connection)
|
|
//use_power(radio_power_use) //neat idea, but causes way too much lag.
|
|
return radio_connection.post_signal(src, signal, filter)
|
|
else
|
|
del(signal)
|
|
|
|
/obj/machinery/embedded_controller/radio/proc/set_frequency(new_frequency)
|
|
radio_controller.remove_object(src, frequency)
|
|
frequency = new_frequency
|
|
radio_connection = radio_controller.add_object(src, frequency, radio_filter) |