From 016cbb80be4c41e823b4c6456624f1073a25a113 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Wed, 10 Feb 2021 02:36:05 +0000 Subject: [PATCH] tgui character directory tweak --- code/_global_vars/lists/misc.dm | 3 ++- code/game/verbs/character_directory.dm | 11 +++++++++- .../client/preference_setup/vore/09_misc.dm | 14 +++++++++++-- code/modules/client/preferences_vr.dm | 1 + .../tgui/interfaces/CharacterDirectory.js | 20 ++++++++++++++++--- tgui/packages/tgui/public/tgui.bundle.js | 2 +- 6 files changed, 43 insertions(+), 8 deletions(-) diff --git a/code/_global_vars/lists/misc.dm b/code/_global_vars/lists/misc.dm index e94aa8d6527..742708face2 100644 --- a/code/_global_vars/lists/misc.dm +++ b/code/_global_vars/lists/misc.dm @@ -7,4 +7,5 @@ GLOBAL_LIST_EMPTY(wire_color_directory) // This is an associative list with the // Reference list for disposal sort junctions. Filled up by sorting junction's New() GLOBAL_LIST_EMPTY(tagger_locations) -GLOBAL_LIST_INIT(char_directory_tags, list("Pred", "Prey", "Switch", "Non-Vore", "Unset")) \ No newline at end of file +GLOBAL_LIST_INIT(char_directory_tags, list("Pred", "Prey", "Switch", "Non-Vore", "Unset")) +GLOBAL_LIST_INIT(char_directory_erptags, list("Top", "Bottom", "Switch", "No ERP", "Unset")) \ No newline at end of file diff --git a/code/game/verbs/character_directory.dm b/code/game/verbs/character_directory.dm index 13d01201230..2c70b54ba76 100644 --- a/code/game/verbs/character_directory.dm +++ b/code/game/verbs/character_directory.dm @@ -32,6 +32,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) data["personalVisibility"] = user?.client?.prefs?.show_in_directory data["personalTag"] = user?.client?.prefs?.directory_tag + data["personalErpTag"] = user?.client?.prefs?.directory_erptag return data @@ -50,6 +51,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) var/ooc_notes = null var/flavor_text = null var/tag = C.prefs.directory_tag + var/erptag = C.prefs.directory_erptag var/character_ad = C.prefs.directory_ad if(ishuman(C.mob)) @@ -85,6 +87,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) "name" = name, "ooc_notes" = ooc_notes, "tag" = tag, + "erptag" = erptag, "character_ad" = character_ad, "flavor_text" = flavor_text, ))) @@ -109,11 +112,17 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) update_tgui_static_data(usr, ui) return TRUE if("setTag") - var/list/new_tag = input(usr, "Pick a new tag for the character directory", "Character Tag", usr?.client?.prefs?.directory_tag) as null|anything in GLOB.char_directory_tags + var/list/new_tag = input(usr, "Pick a new Vore tag for the character directory", "Character Tag", usr?.client?.prefs?.directory_tag) as null|anything in GLOB.char_directory_tags if(!new_tag) return usr?.client?.prefs?.directory_tag = new_tag return TRUE + if("setErpTag") + var/list/new_erptag = input(usr, "Pick a new ERP tag for the character directory", "Character ERP Tag", usr?.client?.prefs?.directory_erptag) as null|anything in GLOB.char_directory_erptags + if(!new_erptag) + return + usr?.client?.prefs?.directory_erptag = new_erptag + return TRUE if("setVisible") usr?.client?.prefs?.show_in_directory = !usr?.client?.prefs?.show_in_directory to_chat(usr, "You are now [usr.client.prefs.show_in_directory ? "shown" : "not shown"] in the directory.") diff --git a/code/modules/client/preference_setup/vore/09_misc.dm b/code/modules/client/preference_setup/vore/09_misc.dm index 7f868e7286e..1396b4570ff 100644 --- a/code/modules/client/preference_setup/vore/09_misc.dm +++ b/code/modules/client/preference_setup/vore/09_misc.dm @@ -7,12 +7,14 @@ /datum/category_item/player_setup_item/vore/misc/load_character(var/savefile/S) S["show_in_directory"] >> pref.show_in_directory S["directory_tag"] >> pref.directory_tag + S["directory_erptag"] >> pref.directory_erptag S["directory_ad"] >> pref.directory_ad S["sensorpref"] >> pref.sensorpref //TFF 5/8/19 - add sensor pref setting to load after saved /datum/category_item/player_setup_item/vore/misc/save_character(var/savefile/S) S["show_in_directory"] << pref.show_in_directory S["directory_tag"] << pref.directory_tag + S["directory_erptag"] << pref.directory_erptag S["directory_ad"] << pref.directory_ad S["sensorpref"] << pref.sensorpref //TFF 5/8/19 - add sensor pref setting to be saveable @@ -25,12 +27,14 @@ /datum/category_item/player_setup_item/vore/misc/sanitize_character() pref.show_in_directory = sanitize_integer(pref.show_in_directory, 0, 1, initial(pref.show_in_directory)) pref.directory_tag = sanitize_inlist(pref.directory_tag, GLOB.char_directory_tags, initial(pref.directory_tag)) + pref.directory_erptag = sanitize_inlist(pref.directory_erptag, GLOB.char_directory_erptags, initial(pref.directory_erptag)) pref.sensorpref = sanitize_integer(pref.sensorpref, 1, sensorpreflist.len, initial(pref.sensorpref)) //TFF - 5/8/19 - add santisation for sensor prefs /datum/category_item/player_setup_item/vore/misc/content(var/mob/user) . += "
" . += "Appear in Character Directory: [pref.show_in_directory ? "Yes" : "No"]
" - . += "Character Directory Tag: [pref.directory_tag]
" + . += "Character Directory Vore Tag: [pref.directory_tag]
" + . += "Character Directory ERP Tag: [pref.directory_erptag]
" . += "Character Directory Advertisement: Set Directory Ad
" . += "Suit Sensors Preference: [sensorpreflist[pref.sensorpref]]
" //TFF 5/8/19 - Allow selection of sensor settings from off, binary, vitals, tracking, or random @@ -39,11 +43,17 @@ pref.show_in_directory = pref.show_in_directory ? 0 : 1; return TOPIC_REFRESH else if(href_list["directory_tag"]) - var/new_tag = input(user, "Pick a new tag for the character directory", "Character Tag", pref.directory_tag) as null|anything in GLOB.char_directory_tags + var/new_tag = input(user, "Pick a new Vore tag for the character directory", "Character Vore Tag", pref.directory_tag) as null|anything in GLOB.char_directory_tags if(!new_tag) return pref.directory_tag = new_tag return TOPIC_REFRESH + else if(href_list["directory_erptag"]) + var/new_erptag = input(user, "Pick a new ERP tag for the character directory", "Character ERP Tag", pref.directory_erptag) as null|anything in GLOB.char_directory_erptags + if(!new_erptag) + return + pref.directory_erptag = new_erptag + return TOPIC_REFRESH else if(href_list["directory_ad"]) var/msg = sanitize(input(user,"Write your advertisement here!", "Flavor Text", html_decode(pref.directory_ad)) as message, extra = 0) //VOREStation Edit: separating out OOC notes pref.directory_ad = msg diff --git a/code/modules/client/preferences_vr.dm b/code/modules/client/preferences_vr.dm index a928f0780d5..185708eb0e5 100644 --- a/code/modules/client/preferences_vr.dm +++ b/code/modules/client/preferences_vr.dm @@ -1,6 +1,7 @@ /datum/preferences var/show_in_directory = 1 //Show in Character Directory var/directory_tag = "Unset" //Sorting tag to use in character directory + var/directory_erptag = "No ERP" //ditto, but for non-vore scenes var/directory_ad = "" //Advertisement stuff to show in character directory. var/sensorpref = 5 //Set character's suit sensor level diff --git a/tgui/packages/tgui/interfaces/CharacterDirectory.js b/tgui/packages/tgui/interfaces/CharacterDirectory.js index 35dcb133f12..43ba609cc19 100644 --- a/tgui/packages/tgui/interfaces/CharacterDirectory.js +++ b/tgui/packages/tgui/interfaces/CharacterDirectory.js @@ -25,6 +25,7 @@ export const CharacterDirectory = (props, context) => { const { personalVisibility, personalTag, + personalErpTag, } = data; const [overlay, setOverlay] = useLocalState(context, "overlay", null); @@ -44,12 +45,18 @@ export const CharacterDirectory = (props, context) => { content={personalVisibility ? "Shown" : "Not Shown"} onClick={() => act("setVisible")} /> - +