mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 21:19:00 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into lighting
# Conflicts: # paradise.dme
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
// 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/burglar/burglar_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, burglar_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
|
||||
|
||||
/datum/controller/process/alarm/doWork()
|
||||
for(var/datum/alarm_handler/AH in all_handlers)
|
||||
AH.process()
|
||||
|
||||
DECLARE_GLOBAL_CONTROLLER(alarm, alarm_manager)
|
||||
|
||||
/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
|
||||
@@ -1,48 +0,0 @@
|
||||
/datum/controller/process/event/setup()
|
||||
name = "event"
|
||||
schedule_interval = 20 // every 2 seconds
|
||||
if(!holiday_master)
|
||||
holiday_master = new
|
||||
holiday_master.Setup()
|
||||
|
||||
/datum/controller/process/event/doWork()
|
||||
event_manager.process()
|
||||
holiday_master.process()
|
||||
|
||||
/////////
|
||||
//Holiday controller
|
||||
/////////
|
||||
|
||||
var/global/datum/controller/holiday/holiday_master //This has to be defined before world.
|
||||
|
||||
/datum/controller/holiday
|
||||
var/list/holidays
|
||||
|
||||
/datum/controller/holiday/proc/Setup()
|
||||
getHoliday()
|
||||
|
||||
/datum/controller/holiday/proc/process()
|
||||
if(holiday_master.holidays)
|
||||
for(var/datum/holiday/H in holiday_master.holidays)
|
||||
if(H.eventChance)
|
||||
if(prob(H.eventChance))
|
||||
H.handle_event()
|
||||
|
||||
/datum/controller/holiday/proc/getHoliday()
|
||||
if(!config.allow_holidays) return //Holiday stuff was not enabled in the config!
|
||||
|
||||
var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year
|
||||
var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month
|
||||
var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day
|
||||
|
||||
for(var/H in subtypesof(/datum/holiday))
|
||||
var/datum/holiday/holiday = new H()
|
||||
if(holiday.shouldCelebrate(DD, MM, YY))
|
||||
holiday.celebrate()
|
||||
if(!holidays)
|
||||
holidays = list()
|
||||
holidays[holiday.name] = holiday
|
||||
|
||||
if(holidays)
|
||||
holidays = shuffle(holidays)
|
||||
world.update_status()
|
||||
@@ -1,17 +0,0 @@
|
||||
/datum/controller/process/fast_process/setup()
|
||||
name = "fast processing"
|
||||
schedule_interval = 2 //every 0.2 seconds
|
||||
start_delay = 9
|
||||
log_startup_progress("Fast Processing starting up.")
|
||||
|
||||
/datum/controller/process/fast_process/statProcess()
|
||||
..()
|
||||
stat(null, "[GLOB.fast_processing.len] fast processes")
|
||||
|
||||
/datum/controller/process/fast_process/doWork()
|
||||
for(last_object in GLOB.fast_processing)
|
||||
var/obj/O = last_object
|
||||
try
|
||||
O.process()
|
||||
catch(var/exception/e)
|
||||
catchException(e, O)
|
||||
@@ -1,28 +0,0 @@
|
||||
/datum/controller/process/obj/setup()
|
||||
name = "obj"
|
||||
schedule_interval = 20 // every 2 seconds
|
||||
start_delay = 8
|
||||
|
||||
/datum/controller/process/obj/started()
|
||||
..()
|
||||
if(!processing_objects)
|
||||
processing_objects = list()
|
||||
|
||||
/datum/controller/process/obj/statProcess()
|
||||
..()
|
||||
stat(null, "[processing_objects.len] objects")
|
||||
|
||||
/datum/controller/process/obj/doWork()
|
||||
for(last_object in processing_objects)
|
||||
var/datum/O = last_object
|
||||
if(istype(O) && !QDELETED(O))
|
||||
try
|
||||
// Reagent datums get shoved in here, but the process proc isn't on the
|
||||
// base datum type, so we just call it blindly.
|
||||
O:process()
|
||||
catch(var/exception/e)
|
||||
catchException(e, O)
|
||||
SCHECK
|
||||
else
|
||||
catchBadType(O)
|
||||
processing_objects -= O
|
||||
@@ -30,7 +30,7 @@ DECLARE_GLOBAL_CONTROLLER(ticker, tickerProcess)
|
||||
|
||||
lastTickerTime = currentTime
|
||||
|
||||
ticker.process()
|
||||
ticker.process_decrepit()
|
||||
|
||||
/datum/controller/process/ticker/proc/getLastTickerTimeDuration()
|
||||
return lastTickerTimeDuration
|
||||
|
||||
Reference in New Issue
Block a user