Fix Shutters Bug (#21947)

Fixes the shutters bug by reverting back to the original version of
turf_hand_component
This commit is contained in:
VMSolidus
2026-03-01 01:41:39 -05:00
committed by GitHub
parent 31c66983d6
commit 0a28af6235
6 changed files with 25 additions and 36 deletions
+16 -31
View File
@@ -1,34 +1,19 @@
/**
* This component is used on airlocks and cult runes.
* When a mob [attack_hand]s a turf, it will look for objects in itself containing this component.
* If such is found, it will call attack_hand on that atom
*/
#define TURF_HAND_COMPONENT /datum/component/turf_hand
/*
This component is used on airlocks and cult runes.
When a mob [attack_hand]s a turf, it will look for objects in itself containing this component.
If such is found, it will call attack_hand on that atom
When multiple of these components are in the tile, the one with the highest priority wins it.
*/
/datum/component/turf_hand
var/priority = 1
var/atom/our_owner
/datum/component/turf_hand/Initialize()
. = ..()
if (!parent)
return
/datum/component/turf_hand/Initialize(var/priority = 1)
..()
if(isatom(parent))
our_owner = parent
src.priority = priority
RegisterSignal(parent, COMSIG_HANDLE_HAND_INTERCEPTION, PROC_REF(OnHandInterception), override = TRUE)
/datum/component/turf_hand/Destroy()
if (parent)
UnregisterSignal(parent, COMSIG_HANDLE_HAND_INTERCEPTION)
return ..()
/datum/component/turf_hand/proc/OnHandInterception(var/atom/origin, var/mob/attacker, var/turf/turf)
// SIGNAL_HANDLER
// For the record you shouldn't comment out SIGNAL_HANDLER on signals for your code.
// But StrongDMM doesn't care that I'm calling a proc on ASYNC.
if (!isatom(parent))
qdel(src) // Invalid parent. Make the component kill itself.
return
if (!attacker)
return
var/atom/owner = parent
INVOKE_ASYNC(owner, TYPE_PROC_REF(/atom, attack_hand), attacker)
/datum/component/turf_hand/proc/OnHandInterception(var/mob/user)
return our_owner.attack_hand(user)
+1 -1
View File
@@ -99,7 +99,7 @@
update_nearby_tiles(need_rebuild=1)
if(turf_hand_priority)
AddComponent(TURF_HAND_COMPONENT)
AddComponent(/datum/component/turf_hand, turf_hand_priority)
/obj/machinery/door/Move(new_loc, new_dir)
. = ..()
+1 -1
View File
@@ -13,7 +13,7 @@
/obj/structure/curtain/Initialize()
. = ..()
material = SSmaterials.get_material_by_name(curtain_material)
AddComponent(TURF_HAND_COMPONENT)
AddComponent(/datum/component/turf_hand)
/obj/structure/curtain/open
icon_state = "open"
+1 -1
View File
@@ -43,7 +43,7 @@
L.update_icon()
break
AddComponent(TURF_HAND_COMPONENT)
AddComponent(/datum/component/turf_hand)
update_icon()
+2 -2
View File
@@ -60,7 +60,7 @@
/obj/structure/lift/button/Initialize(mapload, datum/turbolift/_lift)
. = ..()
AddComponent(TURF_HAND_COMPONENT)
AddComponent(/datum/component/turf_hand)
/obj/structure/lift/button/Destroy()
if(floor && floor.ext_panel == src)
@@ -106,7 +106,7 @@
/obj/structure/lift/panel/Initialize(mapload, datum/turbolift/_lift)
. = ..()
AddComponent(TURF_HAND_COMPONENT)
AddComponent(/datum/component/turf_hand)
/obj/structure/lift/panel/attack_ghost(var/mob/user)
return ui_interact(user)
@@ -0,0 +1,4 @@
author: Hellfirejag
delete-after: True
changes:
- bugfix: "Fixed bug with firelocks and doors."