mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-26 01:22:03 +00:00
47 lines
971 B
Plaintext
47 lines
971 B
Plaintext
var/datum/subsystem/objects/SSobj
|
|
|
|
/datum/proc/process()
|
|
set waitfor = 0
|
|
SSobj.processing.Remove(src)
|
|
return 0
|
|
|
|
/datum/subsystem/objects
|
|
name = "Objects"
|
|
priority = 12
|
|
|
|
var/list/processing = list()
|
|
var/list/burning = list()
|
|
|
|
/datum/subsystem/objects/New()
|
|
NEW_SS_GLOBAL(SSobj)
|
|
|
|
/datum/subsystem/objects/Initialize(timeofday, zlevel)
|
|
setupGenetics()
|
|
for(var/atom/movable/AM in world)
|
|
if (zlevel && AM.z != zlevel)
|
|
continue
|
|
AM.initialize()
|
|
if (zlevel)
|
|
return ..()
|
|
for(var/turf/simulated/floor/F in world)
|
|
F.MakeDirty()
|
|
..()
|
|
|
|
|
|
/datum/subsystem/objects/stat_entry()
|
|
..("P:[processing.len]")
|
|
|
|
|
|
/datum/subsystem/objects/fire()
|
|
for(var/thing in SSobj.processing)
|
|
if(thing)
|
|
thing:process(wait)
|
|
continue
|
|
SSobj.processing.Remove(thing)
|
|
for(var/obj/burningobj in SSobj.burning)
|
|
if(burningobj && (burningobj.burn_state == ON_FIRE))
|
|
if(burningobj.burn_world_time < world.time)
|
|
burningobj.burn()
|
|
else
|
|
SSobj.burning.Remove(burningobj)
|