mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 15:42:35 +00:00
Updates code to be 510 compile compatible. Also introduces the new updates to the GOON processScheduler, which should make for better gameplay and less lag. Specially on high population.
41 lines
1.5 KiB
Plaintext
41 lines
1.5 KiB
Plaintext
// We manually initialize the alarm handlers instead of looping over all existing types
|
|
// to make it possible to write: camera.triggerAlarm() rather than alarm_manager.managers[datum/alarm_handler/camera].triggerAlarm() or a variant thereof.
|
|
/var/global/datum/alarm_handler/atmosphere/atmosphere_alarm = new()
|
|
/var/global/datum/alarm_handler/camera/camera_alarm = new()
|
|
/var/global/datum/alarm_handler/fire/fire_alarm = new()
|
|
/var/global/datum/alarm_handler/motion/motion_alarm = new()
|
|
/var/global/datum/alarm_handler/power/power_alarm = new()
|
|
|
|
// Alarm Manager, the manager for alarms.
|
|
var/datum/controller/process/alarm/alarm_manager
|
|
|
|
/datum/controller/process/alarm
|
|
var/list/datum/alarm/all_handlers
|
|
|
|
/datum/controller/process/alarm/setup()
|
|
name = "alarm"
|
|
schedule_interval = 20 // every 2 seconds
|
|
all_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
|
|
alarm_manager = src
|
|
|
|
/datum/controller/process/alarm/doWork()
|
|
for(var/datum/alarm_handler/AH in all_handlers)
|
|
AH.process()
|
|
SCHECK
|
|
|
|
/datum/controller/process/alarm/proc/active_alarms()
|
|
var/list/all_alarms = new
|
|
for(var/datum/alarm_handler/AH in all_handlers)
|
|
var/list/alarms = AH.alarms
|
|
all_alarms += alarms
|
|
|
|
return all_alarms
|
|
|
|
/datum/controller/process/alarm/proc/number_of_active_alarms()
|
|
var/list/alarms = active_alarms()
|
|
return alarms.len
|
|
|
|
/datum/controller/process/alarm/statProcess()
|
|
..()
|
|
stat(null, "[number_of_active_alarms()] alarm\s")
|