From cb011185d1b6ad1a61e5470ef2499f0147a57e43 Mon Sep 17 00:00:00 2001 From: tonty <39193182+tontyGH@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:48:23 -0500 Subject: [PATCH] Fixes cryo pod's shuttleMove() runtime, remedying constant CI fails (#88526) ## About The Pull Request Cryo pods use a `/datum/gas_machine_connector` component that lets non-atmospheric machine subtypes still have a means of interfacing with the pipenet. When a machine gets `shuttleMove()` called, it does an `abstract_move()` to a loc, then calls `Moved()`, which our gas connector listens to. The problem is that our connector would always attempt a `doMove()`, which would runtime since it would attempt checks that the parent object ignored. This PR makes connectors `abstract_move()` if the signal they received was forced, skipping checks that the parent also skipped. Issues: fixes #88406 fixes #88436 ## Somewhat Small Cat ![image](https://github.com/user-attachments/assets/b2b040fc-1b4f-4ced-88a1-054164358569) ## Changelog :cl: fix: /datum/gas_machine_connector will abstract_move() if their parent also abstract_move()s, preventing a runtime /:cl: --- .../machinery/components/unary_devices/machine_connector.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/machine_connector.dm b/code/modules/atmospherics/machinery/components/unary_devices/machine_connector.dm index 157cbae9af0..e852fccdc31 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/machine_connector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/machine_connector.dm @@ -57,8 +57,12 @@ /** * Called when the machine has been moved, reconnect to the pipe network */ -/datum/gas_machine_connector/proc/moved_connected_machine() +/datum/gas_machine_connector/proc/moved_connected_machine(obj/machinery/source, atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) SIGNAL_HANDLER + if(forced) // Called from parent doing abstract_move() + gas_connector.abstract_move(get_turf(connected_machine)) + return // No side-effects means no disconnections + gas_connector.forceMove(get_turf(connected_machine)) reconnect_connector()