diff --git a/code/modules/modular_computers/file_system/programs/_engineering.dm b/code/modules/modular_computers/file_system/programs/_engineering.dm index db00a52d90f..27ea1720457 100644 --- a/code/modules/modular_computers/file_system/programs/_engineering.dm +++ b/code/modules/modular_computers/file_system/programs/_engineering.dm @@ -6,10 +6,28 @@ nanomodule_path = /datum/nano_module/power_monitor/ program_icon_state = "power_monitor" extended_desc = "This program connects to sensors around the station to provide information about electrical systems" + ui_header = "power_norm.gif" required_access = access_engine requires_ntnet = 1 network_destination = "power monitoring system" size = 9 + var/has_alert = 0 + +/datum/computer_file/program/power_monitor/process_tick() + ..() + var/datum/nano_module/power_monitor/NMA = NM + if(istype(NMA) && NMA.has_alarm()) + if(!has_alert) + program_icon_state = "power_monitor_warn" + ui_header = "power_warn.gif" + update_computer_icon() + has_alert = 1 + else + if(has_alert) + program_icon_state = "power_monitor" + ui_header = "power_norm.gif" + update_computer_icon() + has_alert = 0 /datum/computer_file/program/alarm_monitor filename = "alarmmonitor" diff --git a/code/modules/nano/modules/power_monitor.dm b/code/modules/nano/modules/power_monitor.dm index aaae10e64ac..b0eba159e55 100644 --- a/code/modules/nano/modules/power_monitor.dm +++ b/code/modules/nano/modules/power_monitor.dm @@ -7,6 +7,13 @@ ..() refresh_sensors() +// Checks whether there is an active alarm, if yes, returns 1, otherwise returns 0. +/datum/nano_module/power_monitor/proc/has_alarm() + for(var/obj/machinery/power/sensor/S in grid_sensors) + if(S.check_grid_warning()) + return 1 + return 0 + // If PC is not null header template is loaded. Use PC.get_header_data() to get relevant nanoui data from it. All data entries begin with "PC_...." // In future it may be expanded to other modular computer devices. /datum/nano_module/power_monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) diff --git a/nano/images/status_icons/power_norm.gif b/nano/images/status_icons/power_norm.gif new file mode 100644 index 00000000000..2b8d60edfa5 Binary files /dev/null and b/nano/images/status_icons/power_norm.gif differ diff --git a/nano/images/status_icons/power_warn.gif b/nano/images/status_icons/power_warn.gif new file mode 100644 index 00000000000..0c85b3a85a1 Binary files /dev/null and b/nano/images/status_icons/power_warn.gif differ