diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm
index c99af5e2bb..648432c0ea 100644
--- a/code/game/machinery/computer/apc_control.dm
+++ b/code/game/machinery/computer/apc_control.dm
@@ -6,7 +6,6 @@
req_access = list(ACCESS_ENGINE)
circuit = /obj/item/circuitboard/computer/apc_control
light_color = LIGHT_COLOR_YELLOW
- var/list/apcs //APCs the computer has access to
var/mob/living/operator //Who's operating the computer right now
var/obj/machinery/power/apc/active_apc //The APC we're using right now
var/list/result_filters //For sorting the results
@@ -17,15 +16,9 @@
/obj/machinery/computer/apc_control/Initialize()
. = ..()
- apcs = list() //To avoid BYOND making the list run through a ton of procs
result_filters = list("Name" = null, "Charge Above" = null, "Charge Below" = null, "Responsive" = null)
/obj/machinery/computer/apc_control/process()
- apcs = list() //Clear the list every tick
- for(var/V in GLOB.apcs_list)
- var/obj/machinery/power/apc/APC = V
- if(check_apc(APC))
- apcs[APC.name] = APC
if(operator && (!operator.Adjacent(src) || stat))
operator = null
if(active_apc)
@@ -56,20 +49,21 @@
dat += "Name: [result_filters["Name"] ? result_filters["Name"] : "None set"]
"
dat += "Charge: \>[result_filters["Charge Above"] ? result_filters["Charge Above"] : "NaN"]% and \<[result_filters["Charge Below"] ? result_filters["Charge Below"] : "NaN"]%
"
dat += "Accessible: [result_filters["Responsive"] ? "Non-Responsive Only" : "All"]
"
- for(var/A in apcs)
- var/obj/machinery/power/apc/APC = apcs[A]
- if(result_filters["Name"] && !findtext(APC.name, result_filters["Name"]) && !findtext(APC.area.name, result_filters["Name"]))
- continue
- if(result_filters["Charge Above"] && (!APC.cell || (APC.cell && (APC.cell.charge / APC.cell.maxcharge) < result_filters["Charge Above"] / 100)))
- continue
- if(result_filters["Charge Below"] && APC.cell && (APC.cell.charge / APC.cell.maxcharge) > result_filters["Charge Below"] / 100)
- continue
- if(result_filters["Responsive"] && !APC.aidisabled)
- continue
- dat += "[A]
\
- Charge: [APC.cell ? "[DisplayEnergy(APC.cell.charge)] / [DisplayEnergy(APC.cell.maxcharge)] ([round((APC.cell.charge / APC.cell.maxcharge) * 100)]%)" : "No Powercell Installed"]
\
- Area: [APC.area]
\
- [APC.aidisabled || APC.panel_open ? "APC does not respond to interface query." : "APC responds to interface query."]
"
+ for(var/A in GLOB.apcs_list)
+ if(check_apc(A))
+ var/obj/machinery/power/apc/APC = A
+ if(result_filters["Name"] && !findtext(APC.name, result_filters["Name"]) && !findtext(APC.area.name, result_filters["Name"]))
+ continue
+ if(result_filters["Charge Above"] && (!APC.cell || (APC.cell && (APC.cell.charge / APC.cell.maxcharge) < result_filters["Charge Above"] / 100)))
+ continue
+ if(result_filters["Charge Below"] && APC.cell && (APC.cell.charge / APC.cell.maxcharge) > result_filters["Charge Below"] / 100)
+ continue
+ if(result_filters["Responsive"] && !APC.aidisabled)
+ continue
+ dat += "[A]
\
+ Charge: [APC.cell ? "[DisplayEnergy(APC.cell.charge)] / [DisplayEnergy(APC.cell.maxcharge)] ([round((APC.cell.charge / APC.cell.maxcharge) * 100)]%)" : "No Powercell Installed"]
\
+ Area: [APC.area]
\
+ [APC.aidisabled || APC.panel_open ? "APC does not respond to interface query." : "APC responds to interface query."]
"
dat += "Check Logs
"
dat += "Log Out
"
if(obj_flags & EMAGGED)
@@ -130,7 +124,7 @@
active_apc = null
to_chat(usr, "[icon2html(src, usr)] Connected to APC in [APC.area]. Interface request sent.")
log_activity("remotely accessed APC in [APC.area]")
- APC.interact(usr, GLOB.not_incapacitated_state)
+ APC.ui_interact(usr, state = GLOB.not_incapacitated_state)
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
message_admins("[key_name_admin(usr)] remotely accessed [APC] from [src] at [get_area(src)].")
log_game("[key_name(usr)] remotely accessed [APC] from [src] at [get_area(src)].")