Ports TG's Garbage Subsystem

This commit is contained in:
Fox McCloud
2018-03-28 20:02:39 -04:00
parent 067f5cf8e8
commit 22dc6860b3
74 changed files with 646 additions and 486 deletions
-17
View File
@@ -1,17 +0,0 @@
var/global/datum/controller/process/garbage_collector/garbageCollector
/datum/controller/process/garbage_collector/setup()
name = "garbage"
schedule_interval = 10
start_delay = 3
/datum/controller/process/garbage_collector/doWork()
// Garbage collection code can be found in code\modules\garbage collection\garbage_collector.dm
processGarbage()
/datum/controller/process/garbage_collector/statProcess()
..()
stat(null, "[del_everything ? "Off" : "On"], [queue.len] queued")
stat(null, "Dels: [dels_count], [soft_dels] soft, [hard_dels] hard")
DECLARE_GLOBAL_CONTROLLER(garbage_collector, garbageCollector)
+3 -3
View File
@@ -24,7 +24,7 @@
/datum/controller/process/machinery/proc/process_machines()
for(last_object in machine_processing)
var/obj/machinery/M = last_object
if(istype(M) && isnull(M.gcDestroyed))
if(istype(M) && !QDELETED(M))
try
if(M.process() == PROCESS_KILL)
machine_processing.Remove(M)
@@ -43,7 +43,7 @@
/datum/controller/process/machinery/proc/process_power()
for(last_object in deferred_powernet_rebuilds)
var/obj/O = last_object
if(istype(O) && isnull(O.gcDestroyed))
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
@@ -56,7 +56,7 @@
for(last_object in powernets)
var/datum/powernet/powerNetwork = last_object
if(istype(powerNetwork) && isnull(powerNetwork.gcDestroyed))
if(istype(powerNetwork) && !QDELETED(powerNetwork))
try
powerNetwork.reset()
catch(var/exception/e)
+1 -1
View File
@@ -21,7 +21,7 @@ var/global/datum/controller/process/mob/mob_master
/datum/controller/process/mob/doWork()
for(last_object in mob_list)
var/mob/M = last_object
if(istype(M) && isnull(M.gcDestroyed))
if(istype(M) && !QDELETED(M))
try
M.Life()
catch(var/exception/e)
+2 -2
View File
@@ -25,7 +25,7 @@ var/global/datum/controller/process/npcai/npcai_master
/datum/controller/process/npcai/doWork()
for(last_object in simple_animal_list)
var/mob/living/simple_animal/M = last_object
if(istype(M) && isnull(M.gcDestroyed))
if(istype(M) && !QDELETED(M))
if(!M.client && M.stat == CONSCIOUS)
try
M.process_ai()
@@ -44,7 +44,7 @@ var/global/datum/controller/process/npcai/npcai_master
for(last_object in snpc_list)
var/mob/living/carbon/human/interactive/M = last_object
if(istype(M) && isnull(M.gcDestroyed))
if(istype(M) && !QDELETED(M))
try
if(!M.alternateProcessing || M.forceProcess)
M.doProcess()
+1 -1
View File
@@ -15,7 +15,7 @@
/datum/controller/process/obj/doWork()
for(last_object in processing_objects)
var/datum/O = last_object
if(istype(O) && isnull(O.gcDestroyed))
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.
+1 -1
View File
@@ -19,7 +19,7 @@ var/global/datum/controller/process/timer/timer_master
return
for(last_object in processing_timers)
var/datum/timedevent/event = last_object
if(!event.thingToCall || qdeleted(event.thingToCall))
if(!event.thingToCall || check_datum_qdeleted(event.thingToCall))
qdel(event)
if(event.timeToRun <= world.time)
runevent(event)