From 51e62c0eaaff1f9c3412ccf83a3024bcd944ff84 Mon Sep 17 00:00:00 2001 From: Kapu1178 <75460809+Kapu1178@users.noreply.github.com> Date: Thu, 6 Mar 2025 13:55:32 -0500 Subject: [PATCH] https://github.com/tgstation/tgstation/pull/89146 --- code/_onclick/ai.dm | 15 ++++++++++++--- .../modules/mob/living/silicon/ai/freelook/eye.dm | 8 ++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 5fc9a956be23..db10302ce563 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -117,10 +117,15 @@ /mob/living/silicon/ai/CtrlShiftClickOn(atom/A) A.AICtrlShiftClick(src) + /mob/living/silicon/ai/ShiftClickOn(atom/A) - A.AIShiftClick(src) + if(A.AIShiftClick(src)) + return + return ..() + /mob/living/silicon/ai/CtrlClickOn(atom/A, list/params) A.AICtrlClick(src) + /mob/living/silicon/ai/AltClickOn(atom/A) A.AIAltClick(src) @@ -132,12 +137,15 @@ /* Atom Procs */ /atom/proc/AICtrlClick() - return + return FALSE + /atom/proc/AIAltClick(mob/living/silicon/ai/user) AltClick(user) return + /atom/proc/AIShiftClick() return + /atom/proc/AICtrlShiftClick() return @@ -160,10 +168,11 @@ /obj/machinery/door/airlock/AIShiftClick() // Opens and closes doors! if(obj_flags & EMAGGED) - return + return FALSE user_toggle_open(usr) log_touch(usr) + return TRUE /obj/machinery/door/airlock/AICtrlShiftClick() // Sets/Unsets Emergency Access Override if(obj_flags & EMAGGED) diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 8e637983e60c..11c0c58c5bc1 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -189,6 +189,7 @@ eyeobj.ai = src eyeobj.setLoc(loc) eyeobj.set_real_name("[name] (AI Eye)") + eyeobj.RegisterSignal(src, COMSIG_CLICK_SHIFT, TYPE_PROC_REF(/mob/camera/ai_eye, examinate_check)) set_eyeobj_visible(TRUE) sense_of_self = image(eyeobj.icon, eyeobj, eyeobj.icon_state) @@ -213,6 +214,13 @@ if(relay_speech && speaker && ai && !radio_freq && speaker != ai && near_camera(speaker)) ai.relay_speech(message, speaker, message_language, raw_message, radio_freq, spans, message_mods) +///Called when the AI shiftclicks on something to examinate it. +/mob/camera/ai_eye/proc/examinate_check(mob/user, atom/source) + SIGNAL_HANDLER + + if(user.client.eye == src) + return COMPONENT_ALLOW_EXAMINATE + /obj/effect/overlay/ai_detect_hud name = "" mouse_opacity = MOUSE_OPACITY_TRANSPARENT