[MIRROR] Stops silicons from opening circuit airlocks by bumping them open [MDB IGNORE] (#11174)

* Stops silicons from opening circuit airlocks by bumping them open (#63780)

Prevents silicons from easily opening circuit airlocks by simply bumping them open (This happened as airlock/bumpopen(mob/user) called door/proc/bumpopen(mob/user) which called door/allowed(mob/user) which calls obj/allowed(mob/user) which checks for silicons before it checks for check_access)

* Stops silicons from opening circuit airlocks by bumping them open

Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
This commit is contained in:
SkyratBot
2022-02-01 01:32:18 +00:00
committed by GitHub
co-authored by RandomGamer123
parent 8237219f2c
commit bbc93ba3f0
2 changed files with 11 additions and 3 deletions
+8 -3
View File
@@ -30,6 +30,11 @@
/obj/machinery/door/airlock/shell/canAIHack(mob/user)
return FALSE
/obj/machinery/door/airlock/shell/allowed(mob/user)
if(SEND_SIGNAL(src, COMSIG_AIRLOCK_SHELL_ALLOWED, user) & COMPONENT_AIRLOCK_SHELL_ALLOW)
return TRUE
return isAdminGhostAI(user)
/obj/machinery/door/airlock/shell/set_wires()
return new /datum/wires/airlock/shell(src)
@@ -151,12 +156,12 @@
. = ..()
if(istype(shell, /obj/machinery/door/airlock))
attached_airlock = shell
RegisterSignal(shell, COMSIG_OBJ_ALLOWED, .proc/handle_allowed)
RegisterSignal(shell, COMSIG_AIRLOCK_SHELL_ALLOWED , .proc/handle_allowed)
/obj/item/circuit_component/airlock_access_event/unregister_shell(atom/movable/shell)
attached_airlock = null
UnregisterSignal(shell, list(
COMSIG_OBJ_ALLOWED,
COMSIG_AIRLOCK_SHELL_ALLOWED ,
))
return ..()
@@ -188,4 +193,4 @@
return
if(result["should_open"])
return COMPONENT_OBJ_ALLOW
return COMPONENT_AIRLOCK_SHELL_ALLOW