Makes camera consoles (more) accessible via AI (#19407)

* Makes computers accessible via AI

* Update vorestation.dme
This commit is contained in:
Cameron Lennox
2026-05-03 19:02:53 -04:00
committed by GitHub
parent d2dfc5eaec
commit dc9251387b
4 changed files with 33 additions and 4 deletions
+4 -4
View File
@@ -31,6 +31,9 @@
/obj/machinery/computer/security/tgui_interact(mob/user, datum/tgui/ui = null)
camera.tgui_interact(user, ui)
/obj/machinery/computer/security/tgui_state(mob/user)
return GLOB.tgui_camera_view
/obj/machinery/computer/security/attack_hand(mob/user)
add_fingerprint(user)
if(stat & (BROKEN|NOPOWER))
@@ -45,9 +48,6 @@
..()
/obj/machinery/computer/security/attack_ai(mob/user)
if(isAI(user))
to_chat(user, span_notice("You realise its kind of stupid to access a camera console when you have the entire camera network at your metaphorical fingertips"))
return
attack_hand(user)
/obj/machinery/computer/security/proc/set_network(list/new_network)
@@ -83,7 +83,7 @@ GLOBAL_LIST_EMPTY(entertainment_screens)
light_range_on = 2
network = list(NETWORK_THUNDER)
circuit = /obj/item/circuitboard/security/telescreen/entertainment
camera_datum_type = /datum/tgui_module/camera/bigscreen
camera_datum_type = /datum/tgui_module/camera/virtual
var/obj/item/radio/radio = null
var/obj/effect/overlay/vis/pinboard
+3
View File
@@ -317,4 +317,7 @@
/datum/tgui_module/camera/bigscreen/tgui_state(mob/user)
return GLOB.tgui_physical_state_bigscreen
/datum/tgui_module/camera/virtual/tgui_state(mob/user)
return GLOB.tgui_camera_view
#undef DEFAULT_MAP_SIZE
+25
View File
@@ -0,0 +1,25 @@
/**
* tgui state: camera_view
*
* In addition to default checks, allows AI to interact and has a cutoff after it leaves view range.
* living adjacent user.
**/
GLOBAL_DATUM_INIT(tgui_camera_view, /datum/tgui_state/camera_view, new)
/datum/tgui_state/camera_view/can_use_topic(src_object, mob/user)
. = user.shared_tgui_interaction(src_object)
if(. > STATUS_CLOSE)
return min(., user.camera_view_can_use_topic(src_object))
/mob/proc/camera_view_can_use_topic(src_object)
return STATUS_CLOSE
/mob/living/camera_view_can_use_topic(src_object)
return shared_living_tgui_distance(src_object, viewcheck = TRUE)
/mob/living/silicon/camera_view_can_use_topic(src_object)
return shared_living_tgui_distance(src_object, viewcheck = TRUE)
/mob/living/silicon/ai/camera_view_can_use_topic(src_object)
return STATUS_INTERACTIVE
+1
View File
@@ -4807,6 +4807,7 @@
#include "code\modules\tgui\states\admin.dm"
#include "code\modules\tgui\states\always.dm"
#include "code\modules\tgui\states\board_game.dm"
#include "code\modules\tgui\states\cameras.dm"
#include "code\modules\tgui\states\conscious.dm"
#include "code\modules\tgui\states\contained.dm"
#include "code\modules\tgui\states\deep_inventory.dm"