mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-22 16:12:19 +00:00
changes: Replaces a lot of in-world loops with more specific lists. Recipes are now copied in SSmachinery/Recover() Fixed bad sorting on all_areas list. Added skeleton Destroy() to SMESes as they did not have one and are failing to GC. Seems to shorten SSatoms init a bit, maybe from removal of in-world in MULEs?
64 lines
1.7 KiB
Plaintext
64 lines
1.7 KiB
Plaintext
/var/datum/controller/subsystem/power/SSpower
|
|
|
|
// This doesn't do a whole lot right now.
|
|
// For now.
|
|
|
|
/datum/controller/subsystem/power
|
|
name = "Power"
|
|
flags = SS_NO_FIRE
|
|
init_order = SS_INIT_POWER
|
|
|
|
var/list/rcon_smes_units = list()
|
|
var/list/rcon_smes_units_by_tag = list()
|
|
var/list/rcon_breaker_units = list()
|
|
var/list/rcon_breaker_units_by_tag = list()
|
|
|
|
var/list/breaker_boxes = list()
|
|
var/list/smes_units = list()
|
|
|
|
var/list/all_cables = list()
|
|
var/list/all_sensors = list()
|
|
|
|
var/list/powernets = list()
|
|
|
|
/datum/controller/subsystem/power/stat_entry()
|
|
..("PN:[powernets.len]")
|
|
|
|
/datum/controller/subsystem/power/New()
|
|
NEW_SS_GLOBAL(SSpower)
|
|
|
|
/datum/controller/subsystem/power/Recover()
|
|
all_cables = SSpower.all_cables
|
|
breaker_boxes = SSpower.breaker_boxes
|
|
all_sensors = SSpower.all_sensors
|
|
|
|
/datum/controller/subsystem/power/Initialize()
|
|
makepowernets()
|
|
build_rcon_lists()
|
|
..()
|
|
|
|
// This is called by SSmachinery.
|
|
/datum/controller/subsystem/power/proc/build_rcon_lists()
|
|
rcon_smes_units.Cut()
|
|
rcon_breaker_units.Cut()
|
|
rcon_breaker_units_by_tag.Cut()
|
|
|
|
for(var/obj/machinery/power/smes/buildable/SMES in smes_units)
|
|
if(SMES.RCon_tag && (SMES.RCon_tag != "NO_TAG") && SMES.RCon)
|
|
rcon_smes_units += SMES
|
|
rcon_smes_units_by_tag[SMES.RCon_tag] = SMES
|
|
|
|
for(var/obj/machinery/power/breakerbox/breaker in breaker_boxes)
|
|
if(breaker.RCon_tag != "NO_TAG")
|
|
rcon_breaker_units += breaker
|
|
rcon_breaker_units_by_tag[breaker.RCon_tag] = breaker
|
|
|
|
sortTim(rcon_smes_units, /proc/cmp_rcon_smes)
|
|
sortTim(rcon_breaker_units, /proc/cmp_rcon_bbox)
|
|
|
|
/datum/controller/subsystem/power/proc/reset_powernets()
|
|
for (var/thing in powernets)
|
|
var/datum/powernet/PN = thing
|
|
|
|
PN.reset()
|