From 906c6e7b7c3c852380e38f889e733ce706f0c427 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sun, 18 Jul 2021 12:26:04 -0400 Subject: [PATCH] Fixes #11129 --- code/modules/power/batteryrack.dm | 11 +++++++---- code/modules/power/smes.dm | 24 ++++++++++++++++-------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/code/modules/power/batteryrack.dm b/code/modules/power/batteryrack.dm index ae42d8c727..c5021ba960 100644 --- a/code/modules/power/batteryrack.dm +++ b/code/modules/power/batteryrack.dm @@ -36,10 +36,10 @@ /obj/machinery/power/smes/batteryrack/proc/add_parts() component_parts = list() component_parts += new /obj/item/weapon/circuitboard/batteryrack - component_parts += new /obj/item/weapon/stock_parts/capacitor/ // Capacitors: Maximal I/O - component_parts += new /obj/item/weapon/stock_parts/capacitor/ - component_parts += new /obj/item/weapon/stock_parts/capacitor/ - component_parts += new /obj/item/weapon/stock_parts/matter_bin/ // Matter Bin: Max. amount of cells. + component_parts += new /obj/item/weapon/stock_parts/capacitor // Capacitors: Maximal I/O + component_parts += new /obj/item/weapon/stock_parts/capacitor + component_parts += new /obj/item/weapon/stock_parts/capacitor + component_parts += new /obj/item/weapon/stock_parts/matter_bin // Matter Bin: Max. amount of cells. /obj/machinery/power/smes/batteryrack/RefreshParts() var/capacitor_efficiency = 0 @@ -61,6 +61,9 @@ internal_cells = null return ..() +/obj/machinery/power/smes/batteryrack/check_terminals() + return TRUE // we don't necessarily need terminals + /obj/machinery/power/smes/batteryrack/update_icon() cut_overlays() icon_update = 0 diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 3ddbb303e8..e62c08a99b 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -68,14 +68,8 @@ GLOBAL_LIST_EMPTY(smeses) /obj/machinery/power/smes/Initialize() . = ..() GLOB.smeses += src - for(var/d in GLOB.cardinal) - var/turf/T = get_step(src, d) - for(var/obj/machinery/power/terminal/term in T) - if(term && term.dir == turn(d, 180) && !term.master) - terminals |= term - term.master = src - term.connect_to_network() - if(!terminals.len) + add_nearby_terminals() + if(!check_terminals()) stat |= BROKEN return update_icon() @@ -91,6 +85,20 @@ GLOBAL_LIST_EMPTY(smeses) GLOB.smeses -= src return ..() +/obj/machinery/power/smes/proc/add_nearby_terminals() + for(var/d in GLOB.cardinal) + var/turf/T = get_step(src, d) + for(var/obj/machinery/power/terminal/term in T) + if(term && term.dir == turn(d, 180) && !term.master) + terminals |= term + term.master = src + term.connect_to_network() + +/obj/machinery/power/smes/proc/check_terminals() + if(!terminals.len) + return FALSE + return TRUE + /obj/machinery/power/smes/add_avail(var/amount) if(..(amount)) powernet.smes_newavail += amount