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.
42 lines
1.5 KiB
Plaintext
42 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(last_object in all_handlers)
|
|
var/datum/alarm_handler/AH = last_object
|
|
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")
|