From 7be884c1dcb9ae130fd0559bb45bb161fc9d18ea Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 07:12:42 +0200 Subject: [PATCH] [MIRROR] Attempts to put out the CI fires (#28636) * Attempts to put out the CI fires (#84277) ## About The Pull Request ![image](https://github.com/tgstation/tgstation/assets/13398309/d58de3f2-5adc-48f0-b207-608499f04250) A lot of this all of a sudden, I am going to assume it's related to the recent spark changes, which are most likely causing (literal) fires in the testing area. Fixes https://github.com/tgstation/tgstation/issues/84161 Fixes https://github.com/NovaSector/NovaSector/issues/3123 I'm still testing this one with a few CI runs but the timelines match up with roughly around the time of the spark PR; it's most likely the culprit. EDIT: 8 CI runs so far and the issue has not come up, I am fairly confident it was the sparks + fuel puddle combination that was the problem. EDIT EDIT: Found one more issue with /datum/material/plasma that needs to be dealt with. EDIT EDIT EDIT: Issue resolved ## Why It's Good For The Game Save the burninating for in-game please! ## Changelog Not player facing * Attempts to put out the CI fires --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- code/datums/components/combustible_flooder.dm | 4 ++++ code/game/objects/effects/decals/cleanable/misc.dm | 10 +++++++++- code/modules/unit_tests/unit_test.dm | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/code/datums/components/combustible_flooder.dm b/code/datums/components/combustible_flooder.dm index a4260a9641a..07df03671c1 100644 --- a/code/datums/components/combustible_flooder.dm +++ b/code/datums/components/combustible_flooder.dm @@ -11,6 +11,9 @@ src.gas_amount = initialize_gas_amount src.temp_amount = initialize_temp_amount +// Any item made of plasma is going to have this component, making it extremely difficult to blacklist fire hazards during create_and_destroy. +// So let's just completely neuter them during unit tests so we don't burn down the testing area and cause spurious runtimes. +#ifndef UNIT_TESTS RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(attackby_react)) RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, PROC_REF(flame_react)) RegisterSignal(parent, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(sparks_react)) @@ -18,6 +21,7 @@ RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_WELDER), PROC_REF(welder_react)) if(isturf(parent)) RegisterSignal(parent, COMSIG_TURF_EXPOSE, PROC_REF(hotspots_react)) +#endif /datum/component/combustible_flooder/UnregisterFromParent() UnregisterSignal(parent, COMSIG_ATOM_ATTACKBY) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 04da0c517b0..f3fbf0b817c 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -458,7 +458,6 @@ COMSIG_TURF_MOVABLE_THROW_LANDED = PROC_REF(ignition_trigger), ) AddElement(/datum/element/connect_loc, ignition_trigger_connections) - RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(ignition_trigger)) for(var/obj/effect/decal/cleanable/fuel_pool/pool in get_turf(src)) //Can't use locate because we also belong to that turf if(pool == src) continue @@ -468,6 +467,15 @@ if(burn_stacks) burn_amount = max(min(burn_stacks, 10), 1) + return INITIALIZE_HINT_LATELOAD + +// Just in case of fires, do this after mapload. +/obj/effect/decal/cleanable/fuel_pool/LateInitialize() +// We don't want to burn down the create_and_destroy test area +#ifndef UNIT_TESTS + RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(ignition_trigger)) +#endif + /obj/effect/decal/cleanable/fuel_pool/fire_act(exposed_temperature, exposed_volume) . = ..() ignite() diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index 34dd7dfeaf4..f1d450325c8 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -286,6 +286,10 @@ GLOBAL_VAR_INIT(focused_tests, focused_tests()) returnable_list += typesof(/obj/effect/anomaly/grav/high) //See above returnable_list += typesof(/obj/effect/timestop) + //Sparks can ignite a number of things, causing a fire to burn the floor away. Only you can prevent CI fires + returnable_list += typesof(/obj/effect/particle_effect/sparks) + //See above - These are one of those things. + returnable_list += typesof(/obj/effect/decal/cleanable/fuel_pool) //Invoke async in init, skippppp returnable_list += typesof(/mob/living/silicon/robot/model) //This lad also sleeps