Stops HFRs (and other INDESTRUCTIBLE machinery) from being able to be blown up if an explosion's epicenter is on the tile (#62164)

* Stops HFRs from being able to be blown up if an explosion's epicenter is on the tile

* Stops stationloving objects from being able to be teleported to HFR core

* Automatically add PREVENT_CONTENTS_EXPLOSION_1 to all INDESTRUCTIBLE machinery

* Document reason for PREVENT_CONTENTS_EXPLOSION_1 flag being needed
This commit is contained in:
RandomGamer123
2021-11-15 08:16:09 +01:00
committed by GitHub
parent 2eca64614b
commit 2d36cbb9f7
3 changed files with 16 additions and 1 deletions
@@ -171,6 +171,15 @@
radio.listening = 0
radio.recalculateChannels()
investigate_log("has been created.", INVESTIGATE_HYPERTORUS)
RegisterSignal(src.loc, COMSIG_ATOM_ENTERED, .proc/on_entered)
for(var/atom/movable/movable_object in src.loc)
SEND_SIGNAL(movable_object, COMSIG_MOVABLE_SECLUDED_LOCATION)
/obj/machinery/atmospherics/components/unary/hypertorus/core/proc/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
SIGNAL_HANDLER
SEND_SIGNAL(arrived, COMSIG_MOVABLE_SECLUDED_LOCATION) // to prevent stationloving items (eg. nuke disk) being teleported onto core
/obj/machinery/atmospherics/components/unary/hypertorus/core/Destroy()
unregister_signals(TRUE)
@@ -11,6 +11,7 @@
anchored = TRUE
density = TRUE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
layer = OBJ_LAYER
pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY
circuit = /obj/item/circuitboard/machine/thermomachine
@@ -128,6 +129,7 @@
anchored = TRUE
density = TRUE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
power_channel = AREA_USAGE_ENVIRON
var/active = FALSE
var/icon_state_open