diff --git a/code/__DEFINES/~skyrat_defines/preferences.dm b/code/__DEFINES/~skyrat_defines/preferences.dm index 9fb6cd69ff3..c7007efb8a0 100644 --- a/code/__DEFINES/~skyrat_defines/preferences.dm +++ b/code/__DEFINES/~skyrat_defines/preferences.dm @@ -14,3 +14,10 @@ #define ORGAN_PREF_POSI_BRAIN "Positronic Brain" #define ORGAN_PREF_MMI_BRAIN "Man-Machine Interface" #define ORGAN_PREF_CIRCUIT_BRAIN "Circuitboard" + +/// Essential features for every character, don't add new prefs to this unless you can justify why the majority of characters would use it +#define PREFERENCE_CATEGORY_CHARACTER_BASICS "character_basics" +/// OOC per-character preferences e.g. character advert, ERP status +#define PREFERENCE_CATEGORY_OOC_PREFS "ooc_preferences" +/// Preferences that only apply to AI and cyborgs +#define PREFERENCE_CATEGORY_SILICON_PREFS "silicon_preferences" diff --git a/code/modules/client/preferences/ai_core_display.dm b/code/modules/client/preferences/ai_core_display.dm index c2eedc03e47..23d4b4b1291 100644 --- a/code/modules/client/preferences/ai_core_display.dm +++ b/code/modules/client/preferences/ai_core_display.dm @@ -1,6 +1,6 @@ /// What to show on the AI screen /datum/preference/choiced/ai_core_display - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_SILICON_PREFS // BUBBER EDIT CHANGE - Original: PREFERENCE_CATEGORY_NON_CONTEXTUAL savefile_identifier = PREFERENCE_CHARACTER savefile_key = "preferred_ai_core_display" should_generate_icons = TRUE diff --git a/code/modules/client/preferences/ai_emote_display.dm b/code/modules/client/preferences/ai_emote_display.dm index 685887e4e49..b0472b48cb4 100644 --- a/code/modules/client/preferences/ai_emote_display.dm +++ b/code/modules/client/preferences/ai_emote_display.dm @@ -1,6 +1,6 @@ /// What to show on the AI monitor /datum/preference/choiced/ai_emote_display - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_SILICON_PREFS // BUBBER EDIT CHANGE - Original: PREFERENCE_CATEGORY_NON_CONTEXTUAL savefile_identifier = PREFERENCE_CHARACTER savefile_key = "preferred_ai_emote_display" should_generate_icons = TRUE diff --git a/code/modules/client/preferences/ai_hologram_display.dm b/code/modules/client/preferences/ai_hologram_display.dm index f82803039cc..5cc0f944e0b 100644 --- a/code/modules/client/preferences/ai_hologram_display.dm +++ b/code/modules/client/preferences/ai_hologram_display.dm @@ -1,6 +1,6 @@ /// What to show on the AI hologram /datum/preference/choiced/ai_hologram_display - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_SILICON_PREFS // BUBBER EDIT CHANGE - Original: PREFERENCE_CATEGORY_NON_CONTEXTUAL savefile_identifier = PREFERENCE_CHARACTER savefile_key = "preferred_ai_hologram_display" should_generate_icons = TRUE diff --git a/code/modules/client/preferences/random.dm b/code/modules/client/preferences/random.dm index a28c46a4c95..05ac23667ba 100644 --- a/code/modules/client/preferences/random.dm +++ b/code/modules/client/preferences/random.dm @@ -18,7 +18,7 @@ return RANDOM_DISABLED /datum/preference/toggle/random_hardcore - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS // BUBBER EDIT CHANGE - Original: PREFERENCE_CATEGORY_NON_CONTEXTUAL savefile_key = "random_hardcore" savefile_identifier = PREFERENCE_CHARACTER can_randomize = FALSE diff --git a/code/modules/client/preferences/silicon_gender.dm b/code/modules/client/preferences/silicon_gender.dm index 65d7b27b582..332d6aa9079 100644 --- a/code/modules/client/preferences/silicon_gender.dm +++ b/code/modules/client/preferences/silicon_gender.dm @@ -4,7 +4,7 @@ #define SILICON_NEUTER "It/Its" /datum/preference/choiced/silicon_gender - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_SILICON_PREFS // BUBBER EDIT CHANGE - Original: PREFERENCE_CATEGORY_NON_CONTEXTUAL savefile_identifier = PREFERENCE_CHARACTER savefile_key = "silicon_gender" var/static/use_character_gender = "Use character gender" diff --git a/code/modules/client/preferences/species_features/basic.dm b/code/modules/client/preferences/species_features/basic.dm index b33f2818bda..594e63c57a0 100644 --- a/code/modules/client/preferences/species_features/basic.dm +++ b/code/modules/client/preferences/species_features/basic.dm @@ -23,7 +23,7 @@ priority = PREFERENCE_PRIORITY_BODYPARTS savefile_key = "eye_color" savefile_identifier = PREFERENCE_CHARACTER - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS // BUBBER EDIT CHANGE - Original: PREFERENCE_CATEGORY_SECONDARY_FEATURES relevant_head_flag = HEAD_EYECOLOR /datum/preference/color/eye_color/apply_to_human(mob/living/carbon/human/target, value) diff --git a/modular_skyrat/master_files/code/modules/client/preferences/brain.dm b/modular_skyrat/master_files/code/modules/client/preferences/brain.dm index 386412d3133..6c490dd2b69 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences/brain.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences/brain.dm @@ -1,5 +1,5 @@ /datum/preference/choiced/brain_type - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_SILICON_PREFS savefile_key = "brain_type" savefile_identifier = PREFERENCE_CHARACTER priority = PREFERENCE_PRIORITY_NAMES // Apply after species, cause that's super important. diff --git a/modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.dm b/modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.dm index c77508b6594..69cd36502a1 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences/erp_preferences.dm @@ -130,7 +130,7 @@ savefile_key = "new_genitalia_growth_pref" /datum/preference/choiced/erp_status - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "erp_status_pref" @@ -180,7 +180,7 @@ return FALSE /datum/preference/choiced/erp_status_nc - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "erp_status_pref_nc" @@ -210,7 +210,7 @@ return FALSE /datum/preference/choiced/erp_status_v - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "erp_status_pref_v" @@ -240,7 +240,7 @@ return FALSE /datum/preference/choiced/erp_status_mechanics - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "erp_status_pref_mechanics" @@ -300,7 +300,7 @@ return FALSE /datum/preference/choiced/erp_status_hypno - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "erp_status_pref_hypnosis" diff --git a/modular_skyrat/master_files/code/modules/client/preferences/flavor_text.dm b/modular_skyrat/master_files/code/modules/client/preferences/flavor_text.dm index fbd71e61ecf..413add1b0cc 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences/flavor_text.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences/flavor_text.dm @@ -1,5 +1,5 @@ /datum/preference/text/flavor_text - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "flavor_text" maximum_value_length = MAX_FLAVOR_LEN @@ -8,7 +8,7 @@ target.dna.features["flavor_text"] = value /datum/preference/text/silicon_flavor_text - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_SILICON_PREFS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "silicon_flavor_text" maximum_value_length = MAX_FLAVOR_LEN @@ -18,7 +18,7 @@ return FALSE // To prevent the not-implemented runtime /datum/preference/text/ooc_notes - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "ooc_notes" maximum_value_length = MAX_FLAVOR_LEN diff --git a/modular_skyrat/master_files/code/modules/client/preferences/genitals.dm b/modular_skyrat/master_files/code/modules/client/preferences/genitals.dm index 7bc229b0d0a..ba4d6cc9cfe 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences/genitals.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences/genitals.dm @@ -3,7 +3,7 @@ // ABSTRACT TYPES /datum/preference/toggle/allow_genitals - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "allow_genitals_toggle" default_value = TRUE @@ -19,7 +19,7 @@ return erp_allowed && passed_initial_check /datum/preference/choiced/genital - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER abstract_type = /datum/preference/choiced/genital @@ -74,7 +74,7 @@ return assoc_to_keys_features(SSaccessories.sprite_accessories[relevant_mutant_bodypart]) /datum/preference/toggle/genital_skin_tone - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER default_value = FALSE abstract_type = /datum/preference/toggle/genital_skin_tone @@ -91,7 +91,7 @@ return erp_allowed && (passed_initial_check || allowed) /datum/preference/toggle/genital_skin_color - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER default_value = FALSE abstract_type = /datum/preference/toggle/genital_skin_color @@ -123,7 +123,7 @@ /datum/preference/tri_color/genital - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER check_mode = TRICOLOR_CHECK_ACCESSORY abstract_type = /datum/preference/tri_color/genital @@ -141,7 +141,7 @@ return erp_allowed && can_color && passed_initial_check /datum/preference/tri_bool/genital - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER check_mode = TRICOLOR_CHECK_ACCESSORY abstract_type = /datum/preference/tri_bool/genital diff --git a/modular_skyrat/master_files/code/modules/client/preferences/headshot.dm b/modular_skyrat/master_files/code/modules/client/preferences/headshot.dm index cc68f9dbd99..b2f17de3322 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences/headshot.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences/headshot.dm @@ -1,7 +1,7 @@ // Hey listen! Imgur doesn't actually work, it's been tested. /datum/preference/text/headshot - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "headshot" maximum_value_length = MAX_MESSAGE_LEN diff --git a/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm b/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm index 30ac9d54b2e..d357ecc42d2 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm @@ -36,7 +36,7 @@ return ..() /datum/preference/toggle/allow_emissives - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "allow_emissives_toggle" // no 'e' so it goes right after allow_mismatched_parts, not before default_value = FALSE @@ -45,7 +45,7 @@ return TRUE // we dont actually want this to do anything /datum/preference/tri_color/mutant_colors - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "mutant_colors_color" check_mode = TRICOLOR_NO_CHECK @@ -58,7 +58,7 @@ /datum/preference/toggle/eye_emissives savefile_key = "eye_emissives" savefile_identifier = PREFERENCE_CHARACTER - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS relevant_head_flag = HEAD_EYECOLOR /datum/preference/toggle/eye_emissives/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) @@ -140,24 +140,26 @@ /// Tails /datum/preference/toggle/mutant_toggle/tail + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_key = "tail_toggle" relevant_mutant_bodypart = "tail" /datum/preference/choiced/mutant_choice/tail + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_key = "feature_tail" relevant_mutant_bodypart = "tail" type_to_check = /datum/preference/toggle/mutant_toggle/tail default_accessory_type = /datum/sprite_accessory/tails/none /datum/preference/tri_color/tail - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "tail_color" relevant_mutant_bodypart = "tail" type_to_check = /datum/preference/toggle/mutant_toggle/tail /datum/preference/tri_bool/tail - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "tail_emissive" relevant_mutant_bodypart = "tail" @@ -166,10 +168,12 @@ /// Snouts /datum/preference/toggle/mutant_toggle/snout + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_key = "snout_toggle" relevant_mutant_bodypart = "snout" /datum/preference/choiced/mutant_choice/snout + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_key = "feature_snout" relevant_mutant_bodypart = "snout" type_to_check = /datum/preference/toggle/mutant_toggle/snout @@ -190,14 +194,14 @@ target.synchronize_bodyshapes() /datum/preference/tri_color/snout - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "snout_color" relevant_mutant_bodypart = "snout" type_to_check = /datum/preference/toggle/mutant_toggle/snout /datum/preference/tri_bool/snout - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "snout_emissive" relevant_mutant_bodypart = "snout" @@ -206,24 +210,26 @@ /// Horns /datum/preference/toggle/mutant_toggle/horns + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_key = "horns_toggle" relevant_mutant_bodypart = "horns" /datum/preference/choiced/mutant_choice/horns + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_key = "feature_horns" relevant_mutant_bodypart = "horns" type_to_check = /datum/preference/toggle/mutant_toggle/horns default_accessory_type = /datum/sprite_accessory/horns/none /datum/preference/tri_color/horns - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "horns_color" relevant_mutant_bodypart = "horns" type_to_check = /datum/preference/toggle/mutant_toggle/horns /datum/preference/tri_bool/horns - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "horns_emissive" relevant_mutant_bodypart = "horns" @@ -232,24 +238,26 @@ /// Ears /datum/preference/toggle/mutant_toggle/ears + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_key = "ears_toggle" relevant_mutant_bodypart = "ears" /datum/preference/choiced/mutant_choice/ears + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_key = "feature_ears" relevant_mutant_bodypart = "ears" type_to_check = /datum/preference/toggle/mutant_toggle/ears default_accessory_type = /datum/sprite_accessory/ears/none /datum/preference/tri_color/ears - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "ears_color" relevant_mutant_bodypart = "ears" type_to_check = /datum/preference/toggle/mutant_toggle/ears /datum/preference/tri_bool/ears - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "ears_emissive" relevant_mutant_bodypart = "ears" diff --git a/modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.dm b/modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.dm index 85a08559c80..f1046a01ce3 100644 --- a/modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.dm +++ b/modular_skyrat/master_files/code/modules/client/preferences/species_features/digitigrade_legs.dm @@ -2,7 +2,7 @@ /datum/preference/choiced/digitigrade_legs savefile_key = "digitigrade_legs" savefile_identifier = PREFERENCE_CHARACTER - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + category = PREFERENCE_CATEGORY_CHARACTER_BASICS relevant_mutant_bodypart = "legs" diff --git a/modular_zubbers/code/modules/client/flavor_text/flavor_text.dm b/modular_zubbers/code/modules/client/flavor_text/flavor_text.dm index a3091df0cbc..4d2a252dd73 100644 --- a/modular_zubbers/code/modules/client/flavor_text/flavor_text.dm +++ b/modular_zubbers/code/modules/client/flavor_text/flavor_text.dm @@ -12,7 +12,7 @@ var/art_ref = "" /datum/preference/text/flavor_text_nsfw - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "flavor_text_nsfw" maximum_value_length = MAX_FLAVOR_LEN @@ -53,6 +53,7 @@ //This is just a silicon variant of the NSFW flavor text. /datum/preference/text/flavor_text_nsfw/silicon + category = PREFERENCE_CATEGORY_SILICON_PREFS savefile_key = "silicon_flavor_text_nsfw" /datum/preference/text/flavor_text_nsfw/silicon/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) @@ -91,6 +92,7 @@ //This is literally just the same as the original headshot pref but for silicons :) /datum/preference/text/headshot/silicon + category = PREFERENCE_CATEGORY_SILICON_PREFS savefile_key = "headshot_silicon" /datum/preference/text/headshot/silicon/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) @@ -131,7 +133,7 @@ usr?.client?.prefs.art_ref = value /datum/preference/toggle/art_ref_nsfw - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "art_ref_nsfw" default_value = FALSE @@ -143,6 +145,7 @@ //OOC notes for Silicons. Overwrites regular OOC notes when you are playing a Silicon character. //TODO: Make this your regular OOC notes if you don't have Silicon ones. Every time I've tried, for some reason regular OOC notes haven't shown. /datum/preference/text/ooc_notes/silicon + category = PREFERENCE_CATEGORY_SILICON_PREFS savefile_key = "ooc_notes_silicon" /datum/preference/text/ooc_notes/silicon/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) @@ -150,12 +153,14 @@ //Custom species and lore for silicons, also known as "Custom Model." This allows silicons to define a custom species rather than receiving, by default "A cyborg unit." BORING. /datum/preference/text/custom_species/silicon + category = PREFERENCE_CATEGORY_SILICON_PREFS savefile_key = "custom_species_silicon" /datum/preference/text/custom_species/silicon/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) return FALSE /datum/preference/text/custom_species_lore/silicon + category = PREFERENCE_CATEGORY_SILICON_PREFS savefile_key = "custom_species_lore_silicon" /datum/preference/text/custom_species_lore/silicon/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) diff --git a/modular_zubbers/code/modules/client/preferences/blooper.dm b/modular_zubbers/code/modules/client/preferences/blooper.dm index 1644c0d7d47..fbf31fdb30f 100644 --- a/modular_zubbers/code/modules/client/preferences/blooper.dm +++ b/modular_zubbers/code/modules/client/preferences/blooper.dm @@ -1,5 +1,5 @@ /datum/preference/choiced/blooper - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "blooper_choice" @@ -26,7 +26,7 @@ return data /datum/preference/numeric/blooper_speed - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "blooper_speed" minimum = 0 @@ -42,7 +42,7 @@ return ..() && length(SSblooper.blooper_list) /datum/preference/numeric/blooper_pitch - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "blooper_pitch" minimum = 0 @@ -58,7 +58,7 @@ return ..() && length(SSblooper.blooper_list) /datum/preference/numeric/blooper_pitch_range - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_CHARACTER_BASICS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "blooper_pitch_range" minimum = 0 diff --git a/modular_zubbers/code/modules/client/verbs/character_directory.dm b/modular_zubbers/code/modules/client/verbs/character_directory.dm index 9d73ae69879..dc457529b6a 100644 --- a/modular_zubbers/code/modules/client/verbs/character_directory.dm +++ b/modular_zubbers/code/modules/client/verbs/character_directory.dm @@ -11,7 +11,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) //The advertisement that you show to people looking through the directory /datum/preference/text/character_ad savefile_key = "character_ad" - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER maximum_value_length = MAX_FLAVOR_LEN @@ -25,7 +25,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) /datum/preference/choiced/attraction savefile_key = "attraction" - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER /datum/preference/choiced/attraction/init_possible_values() @@ -39,7 +39,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) /datum/preference/choiced/display_gender savefile_key = "display_gender" - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER /datum/preference/choiced/display_gender/init_possible_values() diff --git a/modular_zubbers/code/modules/rr_opt_in/rr_optin_preferences.dm b/modular_zubbers/code/modules/rr_opt_in/rr_optin_preferences.dm index d985bb84781..9617014185e 100644 --- a/modular_zubbers/code/modules/rr_opt_in/rr_optin_preferences.dm +++ b/modular_zubbers/code/modules/rr_opt_in/rr_optin_preferences.dm @@ -1,5 +1,5 @@ /datum/preference/toggle/be_round_removed - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "be_round_removed" diff --git a/modular_zubbers/master_files/code/modules/client/preferences/hypnopref.dm b/modular_zubbers/master_files/code/modules/client/preferences/hypnopref.dm index f65b5cf861a..e6be063899d 100644 --- a/modular_zubbers/master_files/code/modules/client/preferences/hypnopref.dm +++ b/modular_zubbers/master_files/code/modules/client/preferences/hypnopref.dm @@ -1,5 +1,5 @@ /datum/preference/choiced/erp_status_hypno - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + category = PREFERENCE_CATEGORY_OOC_PREFS savefile_identifier = PREFERENCE_CHARACTER savefile_key = "erp_status_pref_hypnosis" diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx index 5207225ec14..0b6d5942636 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx @@ -9,6 +9,7 @@ import { Floating, Input, LabeledList, + NoticeBox, Section, Stack, } from 'tgui-core/components'; @@ -493,6 +494,16 @@ export function MainPage(props: MainPageProps) { const contextualPreferences = data.character_preferences.secondary_features || []; + // BUBBER EDIT ADDITION BEGIN: more character setup tabs + const characterBasicsPreferences = + data.character_preferences.character_basics || []; + + const oocPrefPreferences = data.character_preferences.ooc_preferences || []; + + const siliconPreferences = + data.character_preferences.silicon_preferences || []; + // BUBBER EDIT ADDITION END: more character setup tabs + const mainFeatures = [ ...Object.entries(data.character_preferences.clothing ?? {}), ...Object.entries(data.character_preferences.features ?? {}), @@ -523,14 +534,30 @@ export function MainPage(props: MainPageProps) { // BUBBER EDIT ADDITION BEGIN: SWAPPABLE PREF MENUS enum PrefPage { + CharBasics, // Character basics Visual, // The visual parts Lore, // Lore, Flavor Text, Age, Records + OOCPref, // OOC preferences + Silicon, // Silicon prefs } - const [currentPrefPage, setCurrentPrefPage] = useState(PrefPage.Visual); + const [currentPrefPage, setCurrentPrefPage] = useState(PrefPage.CharBasics); let prefPageContents; switch (currentPrefPage) { + case PrefPage.CharBasics: + prefPageContents = ( + + ); + break; case PrefPage.Visual: prefPageContents = ( ); break; + case PrefPage.OOCPref: + prefPageContents = ( + + ); + break; + case PrefPage.Silicon: + prefPageContents = ( + <> + + This tab is for preferences that only apply when playing the AI or + Cyborg jobs! + + + + ); + break; default: exhaustiveCheck(currentPrefPage); } @@ -696,6 +755,15 @@ export function MainPage(props: MainPageProps) { + + + Character Basics + + + + + OOC Preferences + + + + + Silicon Preferences + + {prefPageContents} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/index.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/index.tsx index d9570c38a96..bb756e188d4 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/index.tsx +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/index.tsx @@ -1,6 +1,6 @@ import { useState } from 'react'; import { useBackend } from 'tgui/backend'; -import { NoticeBox, Stack, Button } from 'tgui-core/components'; // BUBBER EDIT CHANGE - ORIGINAL : import { NoticeBox, Stack } from 'tgui-core/components'; +import { Button, NoticeBox, Stack } from 'tgui-core/components'; // BUBBER EDIT CHANGE - ORIGINAL : import { NoticeBox, Stack } from 'tgui-core/components'; import { exhaustiveCheck } from 'tgui-core/exhaustive'; import { SideDropdown } from '../../../bubber_components/SideDropdown'; // BUBBER EDIT ADDITION @@ -141,7 +141,9 @@ export function CharacterPreferenceWindow(props) { {/* BUBBER EDIT ADDITION BEGIN */}