Add UI preference menus for AI hologram and status displays (#75740)

This adds two new dropdown menus for AI preferences with holograms and
status displays. It also sets these preferences if admins transform a
player into an AI.
This commit is contained in:
Tim
2023-06-23 08:43:26 +00:00
committed by GitHub
parent d93e81c2fc
commit 2a19963297
16 changed files with 256 additions and 106 deletions
@@ -8,7 +8,7 @@
/datum/preference/choiced/ai_core_display/init_possible_values()
var/list/values = list()
values["Random"] = icon('icons/mob/silicon/ai.dmi', "ai-empty")
values["Random"] = icon('icons/mob/silicon/ai.dmi', "questionmark")
for (var/screen in GLOB.ai_core_display_screens - "Portrait" - "Random")
values[screen] = icon('icons/mob/silicon/ai.dmi', resolve_ai_icon_sync(screen))
@@ -0,0 +1,26 @@
/// What to show on the AI monitor
/datum/preference/choiced/ai_emote_display
category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
savefile_identifier = PREFERENCE_CHARACTER
savefile_key = "preferred_ai_emote_display"
should_generate_icons = TRUE
/datum/preference/choiced/ai_emote_display/init_possible_values()
var/list/values = list()
values["Random"] = icon('icons/mob/silicon/ai.dmi', "questionmark")
for(var/emote in GLOB.ai_status_display_emotes)
var/emote_icon = GLOB.ai_status_display_emotes[emote]
values[emote] = icon('icons/obj/status_display.dmi', emote_icon)
return values
/datum/preference/choiced/ai_emote_display/is_accessible(datum/preferences/preferences)
if (!..(preferences))
return FALSE
return istype(preferences.get_highest_priority_job(), /datum/job/ai)
/datum/preference/choiced/ai_emote_display/apply_to_human(mob/living/carbon/human/target, value)
return
@@ -0,0 +1,25 @@
/// What to show on the AI hologram
/datum/preference/choiced/ai_hologram_display
category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
savefile_identifier = PREFERENCE_CHARACTER
savefile_key = "preferred_ai_hologram_display"
should_generate_icons = TRUE
/datum/preference/choiced/ai_hologram_display/init_possible_values()
var/list/values = list()
values["Random"] = icon('icons/mob/silicon/ai.dmi', "questionmark")
for(var/hologram in GLOB.ai_hologram_icons - "Random")
values[hologram] = icon(GLOB.ai_hologram_icons[hologram], GLOB.ai_hologram_icon_state[hologram])
return values
/datum/preference/choiced/ai_hologram_display/is_accessible(datum/preferences/preferences)
if (!..(preferences))
return FALSE
return istype(preferences.get_highest_priority_job(), /datum/job/ai)
/datum/preference/choiced/ai_hologram_display/apply_to_human(mob/living/carbon/human/target, value)
return