vtuber mode
This commit is contained in:
@@ -47,6 +47,7 @@
|
||||
var/mob/living/simple_animal/bot/Bot
|
||||
var/tracking = FALSE //this is 1 if the AI is currently tracking somebody, but the track has not yet been completed.
|
||||
var/datum/effect_system/spark_spread/spark_system//So they can initialize sparks whenever/N
|
||||
var/obj/machinery/status_display/controlled_display
|
||||
|
||||
//MALFUNCTION
|
||||
var/datum/module_picker/malf_picker
|
||||
@@ -1043,3 +1044,14 @@
|
||||
|
||||
/mob/living/silicon/ai/zMove(dir, feedback = FALSE)
|
||||
. = eyeobj.zMove(dir, feedback)
|
||||
|
||||
/mob/living/silicon/ai/proc/stop_controlling_display()
|
||||
if(!controlled_display)
|
||||
return
|
||||
controlled_display.master = null
|
||||
controlled_display.cut_overlay(controlled_display.ai_vtuber_overlay)
|
||||
controlled_display.ai_vtuber_overlay = null
|
||||
if(current == controlled_display)
|
||||
current = null
|
||||
controlled_display.update_appearance()
|
||||
controlled_display = null
|
||||
|
||||
@@ -92,6 +92,8 @@
|
||||
ai.light_cameras()
|
||||
if(ai.master_multicam)
|
||||
ai.master_multicam.refresh_view()
|
||||
if(ai.controlled_display)
|
||||
ai.stop_controlling_display()
|
||||
|
||||
//it uses setLoc not forceMove, talks to the sillycone and not the camera mob
|
||||
/mob/camera/aiEye/zMove(dir, feedback = FALSE)
|
||||
@@ -168,6 +170,9 @@
|
||||
if(!user.tracking)
|
||||
user.cameraFollow = null
|
||||
|
||||
if(user.controlled_display)
|
||||
user.stop_controlling_display()
|
||||
|
||||
// Return to the Core.
|
||||
/mob/living/silicon/ai/proc/view_core()
|
||||
if(istype(current,/obj/machinery/holopad))
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
//For holopads only. Usable by AI.
|
||||
/mob/living/silicon/ai/proc/holopad_talk(message, language)
|
||||
|
||||
message_admins("HOLOPAD TALK")
|
||||
|
||||
message = trim(message)
|
||||
|
||||
@@ -56,6 +56,30 @@
|
||||
to_chat(src, "No holopad connected.")
|
||||
|
||||
|
||||
//For status displays only. Usable by AI.
|
||||
/mob/living/silicon/ai/proc/statusdisplay_talk(message, language)
|
||||
message_admins("STATUSDISPLAY TALK")
|
||||
message = trim(message)
|
||||
|
||||
if (!message)
|
||||
return
|
||||
|
||||
var/obj/machinery/status_display/T = controlled_display
|
||||
if(T)
|
||||
var/turf/padturf = get_turf(T)
|
||||
var/padloc
|
||||
if(padturf)
|
||||
padloc = AREACOORD(padturf)
|
||||
else
|
||||
padloc = "(UNKNOWN)"
|
||||
src.log_talk(message, LOG_SAY, tag="STATUS DISPLAY in [padloc]")
|
||||
send_speech(message, 7, T, "robot", message_language = language)
|
||||
to_chat(src, "<i><span class='game say'>Status Display message transmitted, <span class='name'>[real_name]</span> <span class='message robot'>\"[message]\"</span></span></i>")
|
||||
else
|
||||
to_chat(src, "No status display connected.")
|
||||
|
||||
|
||||
|
||||
// Make sure that the code compiles with AI_VOX undefined
|
||||
#ifdef AI_VOX
|
||||
#define VOX_DELAY 600
|
||||
|
||||
Reference in New Issue
Block a user