Little Weakref Refactor

This commit is contained in:
Heroman3003
2023-06-03 19:21:17 +10:00
committed by CHOMPStation2
parent 515d0e49ba
commit 3d53d2bb62
41 changed files with 295 additions and 172 deletions
@@ -106,19 +106,19 @@
for(var/i = 1 to number_of_blobs)
var/turf/T = pick(open_turfs)
var/obj/structure/blob/core/new_blob = new spawn_blob_type(T)
blobs += weakref(new_blob)
blobs += WEAKREF(new_blob)
open_turfs -= T // So we can't put two cores on the same tile if doing multiblob.
log_debug("Spawned [new_blob.overmind.blob_type.name] blob at [get_area(new_blob)].")
/datum/event2/event/blob/should_end()
for(var/weakref/weakref as anything in blobs)
for(var/datum/weakref/weakref as anything in blobs)
if(weakref.resolve()) // If the weakref is resolvable, that means the blob hasn't been deleted yet.
return FALSE
return TRUE // Only end if all blobs die.
// Normally this does nothing, but is useful if aborted by an admin.
/datum/event2/event/blob/end()
for(var/weakref/weakref as anything in blobs)
for(var/datum/weakref/weakref as anything in blobs)
var/obj/structure/blob/core/B = weakref.resolve()
if(istype(B))
qdel(B)
@@ -128,7 +128,7 @@
var/danger_level = 0
var/list/blob_type_names = list()
var/multiblob = FALSE
for(var/weakref/weakref as anything in blobs)
for(var/datum/weakref/weakref as anything in blobs)
var/obj/structure/blob/core/B = weakref.resolve()
if(!istype(B))
continue