From 176e4232cac25c9262b6f60f3b800229e960b2df Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 15 Aug 2015 18:28:09 -0400 Subject: [PATCH] Fixes #9155 Heaters and freezers now check if there are other machines in their turf that have the same connection dirs. --- code/ATMOSPHERICS/components/unary/cold_sink.dm | 7 +++++++ code/ATMOSPHERICS/components/unary/heat_source.dm | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/code/ATMOSPHERICS/components/unary/cold_sink.dm b/code/ATMOSPHERICS/components/unary/cold_sink.dm index e5305876ed..9fcdad8613 100644 --- a/code/ATMOSPHERICS/components/unary/cold_sink.dm +++ b/code/ATMOSPHERICS/components/unary/cold_sink.dm @@ -43,6 +43,13 @@ node = target break + //copied from pipe construction code since heaters/freezers don't use fittings and weren't doing this check - this all really really needs to be refactored someday. + //check that there are no incompatible pipes/machinery in our own location + for(var/obj/machinery/atmospherics/M in src.loc) + if(M != src && (M.initialize_directions & node_connect) && M.check_connect_types(M,src)) // matches at least one direction on either type of pipe & same connection type + node = null + break + update_icon() /obj/machinery/atmospherics/unary/freezer/update_icon() diff --git a/code/ATMOSPHERICS/components/unary/heat_source.dm b/code/ATMOSPHERICS/components/unary/heat_source.dm index db046e7974..e139f6faf3 100644 --- a/code/ATMOSPHERICS/components/unary/heat_source.dm +++ b/code/ATMOSPHERICS/components/unary/heat_source.dm @@ -39,11 +39,19 @@ var/node_connect = dir + //check that there is something to connect to for(var/obj/machinery/atmospherics/target in get_step(src, node_connect)) if(target.initialize_directions & get_dir(target, src)) node = target break + //copied from pipe construction code since heaters/freezers don't use fittings and weren't doing this check - this all really really needs to be refactored someday. + //check that there are no incompatible pipes/machinery in our own location + for(var/obj/machinery/atmospherics/M in src.loc) + if(M != src && (M.initialize_directions & node_connect) && M.check_connect_types(M,src)) // matches at least one direction on either type of pipe & same connection type + node = null + break + update_icon()