From 90cb5ccc041806d49092f348e76955213d28b05b Mon Sep 17 00:00:00 2001 From: Cactus Date: Fri, 9 Nov 2018 21:04:24 -0500 Subject: [PATCH] adds the character directory --- code/game/verbs/character_directory.dm | 37 +++++++++++++++++++ .../client/preference_setup/vore/09_misc.dm | 26 +++++++++++++ vorestation.dme | 2 + 3 files changed, 65 insertions(+) create mode 100644 code/game/verbs/character_directory.dm create mode 100644 code/modules/client/preference_setup/vore/09_misc.dm diff --git a/code/game/verbs/character_directory.dm b/code/game/verbs/character_directory.dm new file mode 100644 index 0000000000..6f5a6debc2 --- /dev/null +++ b/code/game/verbs/character_directory.dm @@ -0,0 +1,37 @@ +/client/verb/show_character_directory() + set name = "Character Directory" + set category = "OOC" + set desc = "Shows a listing of all active characters, along with their associated OOC notes, flavor text, and more." + + if(mob.next_move >= world.time) //This is primarily to stop malicious users from trying to lag the server by spamming this verb + return + + mob.next_move = world.time + 10 + + var/html = "" + + var/curID = 0 + for(var/client/C in clients) + if(C.prefs && !C.prefs.show_in_directory) + continue + if(ishuman(C.mob)) + var/mob/living/carbon/human/H = C.mob + if(data_core && data_core.general) + if(!find_general_record("name", H.real_name)) + continue + curID++ + html += "
" + html += "

[H.real_name]


" + if(H.flavor_texts["general"]) + html += "Flavor text" + html += "" + if(H.ooc_notes) + html += "OOC notes" + html += "" + html += "
" + if(!curID) + html += "

404: Station not found

" + + var/datum/browser/popup = new(mob, "chardir", "Character Directory", 640, 480) + popup.set_content(html) + popup.open() \ No newline at end of file diff --git a/code/modules/client/preference_setup/vore/09_misc.dm b/code/modules/client/preference_setup/vore/09_misc.dm new file mode 100644 index 0000000000..d0809c781e --- /dev/null +++ b/code/modules/client/preference_setup/vore/09_misc.dm @@ -0,0 +1,26 @@ +/datum/preferences + var/show_in_directory = TRUE + +/datum/category_item/player_setup_item/vore/misc + name = "Misc Settings" + sort_order = 9 + +/datum/category_item/player_setup_item/vore/misc/load_character(var/savefile/S) + S["show_in_directory"] >> pref.show_in_directory + + +/datum/category_item/player_setup_item/vore/misc/save_character(var/savefile/S) + S["show_in_directory"] << pref.show_in_directory + +/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)) + +/datum/category_item/player_setup_item/vore/misc/content(var/mob/user) + . += "
" + . += "Appear in Character Directory: [pref.show_in_directory ? "Yes" : "No"]
" + +/datum/category_item/player_setup_item/vore/misc/OnTopic(var/href, var/list/href_list, var/mob/user) + if(href_list["toggle_show_in_directory"]) + pref.show_in_directory = pref.show_in_directory ? 0 : 1; + return TOPIC_REFRESH + return ..(); \ No newline at end of file diff --git a/vorestation.dme b/vorestation.dme index 0e81bb0fc6..ffd1097406 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1291,6 +1291,7 @@ #include "code\game\turfs\unsimulated\sky_vr.dm" #include "code\game\turfs\unsimulated\walls.dm" #include "code\game\verbs\advanced_who.dm" +#include "code\game\verbs\character_directory.dm" #include "code\game\verbs\ignore.dm" #include "code\game\verbs\ooc.dm" #include "code\game\verbs\suicide.dm" @@ -1504,6 +1505,7 @@ #include "code\modules\client\preference_setup\vore\06_vantag.dm" #include "code\modules\client\preference_setup\vore\07_traits.dm" #include "code\modules\client\preference_setup\vore\08_nif.dm" +#include "code\modules\client\preference_setup\vore\09_misc.dm" #include "code\modules\clothing\chameleon.dm" #include "code\modules\clothing\clothing.dm" #include "code\modules\clothing\clothing_accessories.dm"