final
This commit is contained in:
@@ -4,42 +4,26 @@
|
||||
icon_screen = "alert:0"
|
||||
icon_keyboard = "atmos_key"
|
||||
circuit = /obj/item/circuitboard/computer/stationalert
|
||||
///Listens for alarms, provides the alarms list for our ui
|
||||
var/datum/alarm_listener/listener
|
||||
|
||||
light_color = LIGHT_COLOR_CYAN
|
||||
/// Station alert datum for showing alerts UI
|
||||
var/datum/station_alert/alert_control
|
||||
|
||||
/obj/machinery/computer/station_alert/Initialize(mapload)
|
||||
listener = new(list(ALARM_ATMOS, ALARM_FIRE, ALARM_POWER), list(z))
|
||||
alert_control = new(src, list(ALARM_ATMOS, ALARM_FIRE, ALARM_POWER), list(z), title = name)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/station_alert/Destroy()
|
||||
QDEL_NULL(listener)
|
||||
QDEL_NULL(alert_control)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/station_alert/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "StationAlertConsole", name)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/computer/station_alert/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
data["alarms"] = list()
|
||||
var/list/alarms = listener.alarms
|
||||
for(var/alarm_type in alarms)
|
||||
data["alarms"][alarm_type] = list()
|
||||
for(var/area_name in alarms[alarm_type])
|
||||
data["alarms"][alarm_type] += area_name
|
||||
|
||||
return data
|
||||
/obj/machinery/computer/station_alert/ui_interact(mob/user)
|
||||
alert_control.ui_interact(user)
|
||||
|
||||
/obj/machinery/computer/station_alert/on_machine_stat_update(stat)
|
||||
if(stat & BROKEN)
|
||||
listener.prevent_alarm_changes()
|
||||
alert_control.listener.prevent_alarm_changes()
|
||||
else
|
||||
listener.allow_alarm_changes()
|
||||
alert_control.listener.allow_alarm_changes()
|
||||
|
||||
/obj/machinery/computer/station_alert/update_overlays()
|
||||
. = ..()
|
||||
@@ -49,7 +33,7 @@
|
||||
. |= "[icon_keyboard]_off"
|
||||
return
|
||||
. |= icon_keyboard
|
||||
if(length(listener.alarms))
|
||||
if(length(alert_control.listener.alarms))
|
||||
overlay_state = "alert:2"
|
||||
else
|
||||
overlay_state = "alert:0"
|
||||
|
||||
Reference in New Issue
Block a user