SS Conversion: Atoms, Machines, n' Mobs

This converts the machine and mob processes to the SMC. Additionally, it
adds the Atom subsystem, which handles all Initialize() calls in place
of the old gameticker. Due to incompatibility with our atmospherics
(FUCK OUR ATMOSPHERICS FOR FUCKING EVER JESUS CHRIST WHO THE FUCK MADE
THIS PIECE OF GODDAMN SHIT) atmospherics machines do not use
Initialize() as they should, instead opting for a custom atmos_init
proc that the air controller handles.
This commit is contained in:
tigercat2000
2018-04-28 17:55:15 -07:00
parent dabdbd4426
commit 7d8c9a731a
181 changed files with 765 additions and 571 deletions
-74
View File
@@ -1,74 +0,0 @@
/var/global/machinery_sort_required = 0
/datum/controller/process/machinery/setup()
name = "machinery"
schedule_interval = 20 // every 2 seconds
start_delay = 12
/datum/controller/process/machinery/statProcess()
..()
stat(null, "[machine_processing.len] machines")
stat(null, "[powernets.len] powernets, [deferred_powernet_rebuilds.len] deferred")
/datum/controller/process/machinery/doWork()
process_sort()
process_power()
process_power_drain()
process_machines()
/datum/controller/process/machinery/proc/process_sort()
if(machinery_sort_required)
machinery_sort_required = 0
machine_processing = dd_sortedObjectList(machine_processing)
/datum/controller/process/machinery/proc/process_machines()
for(last_object in machine_processing)
var/obj/machinery/M = last_object
if(istype(M) && !QDELETED(M))
try
if(M.process() == PROCESS_KILL)
machine_processing.Remove(M)
continue
if(M.use_power)
M.auto_use_power()
catch(var/exception/e)
catchException(e, M)
else
catchBadType(M)
machine_processing -= M
SCHECK
/datum/controller/process/machinery/proc/process_power()
for(last_object in deferred_powernet_rebuilds)
var/obj/O = last_object
if(istype(O) && !QDELETED(O))
try
var/datum/powernet/newPN = new()// creates a new powernet...
propagate_network(O, newPN)//... and propagates it to the other side of the cable
catch(var/exception/e)
catchException(e, O)
SCHECK
else
catchBadType(O)
deferred_powernet_rebuilds -= O
for(last_object in powernets)
var/datum/powernet/powerNetwork = last_object
if(istype(powerNetwork) && !QDELETED(powerNetwork))
try
powerNetwork.reset()
catch(var/exception/e)
catchException(e, powerNetwork)
SCHECK
else
catchBadType(powerNetwork)
powernets -= powerNetwork
/datum/controller/process/machinery/proc/process_power_drain()
// Currently only used by powersinks. These items get priority processed before machinery
for(var/obj/item/I in processing_power_items)
if(!I.pwr_drain()) // 0 = Process Kill, remove from processing list.
processing_power_items.Remove(I)
SCHECK
-35
View File
@@ -1,35 +0,0 @@
var/global/datum/controller/process/mob/mob_master
/datum/controller/process/mob
var/current_cycle
/datum/controller/process/mob/setup()
name = "mob"
schedule_interval = 20 // every 2 seconds
start_delay = 16
log_startup_progress("Mob ticker starting up.")
/datum/controller/process/mob/started()
..()
if(!mob_list)
mob_list = list()
/datum/controller/process/mob/statProcess()
..()
stat(null, "[mob_list.len] mobs")
/datum/controller/process/mob/doWork()
for(last_object in mob_list)
var/mob/M = last_object
if(istype(M) && !QDELETED(M))
try
M.Life()
catch(var/exception/e)
catchException(e, M)
SCHECK
else
catchBadType(M)
mob_list -= M
current_cycle++
DECLARE_GLOBAL_CONTROLLER(mob, mob_master)