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