From 9e4e33392ac27604d83a73ef16d4591a205f5fb7 Mon Sep 17 00:00:00 2001 From: ariaworld <143797359+ariaworld@users.noreply.github.com> Date: Thu, 9 May 2024 22:30:46 +0200 Subject: [PATCH] Adds custom blood color! --- code/datums/dna.dm | 4 +++ code/game/area/areas.dm | 3 +++ code/modules/client/preferences.dm | 25 +++++++++++++++++++ .../code/modules/client/preferences.dm | 4 +++ .../modules/client/preferences_savefile.dm | 14 +++++++++-- 5 files changed, 48 insertions(+), 2 deletions(-) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index b10cd46ea7..2974222665 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -55,6 +55,10 @@ destination.dna.features = features.Copy() destination.set_species(species.type, icon_update=0) destination.dna.species.say_mod = species.say_mod + // Added by SPLURT (Custom Blood Color) + destination.dna.species.exotic_blood_color = species.exotic_blood_color + destination.dna.species.exotic_blood_blend_mode = species.exotic_blood_blend_mode + // SPLURT Edit end destination.dna.real_name = real_name destination.dna.nameless = nameless destination.dna.custom_species = custom_species diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 7b46fe63e5..22de4a8b27 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -668,6 +668,9 @@ GLOBAL_LIST_EMPTY(teleportlocs) if(!L.ckey) return + if(!L.client) + return + // Ambience goes down here -- make sure to list each area separately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch if(L.client && !L.client.ambience_playing && L.client.prefs.toggles & SOUND_SHIP_AMBIENCE) L.client.ambience_playing = 1 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 5dca80e144..c74e2f9ee8 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -108,6 +108,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/pda_color = "#808000" var/pda_skin = PDA_SKIN_ALT + // Added by SPLURT (Custom Blood Color) + var/custom_blood_color = FALSE + var/blood_color = BLOOD_COLOR_HUMAN + /// var/uses_glasses_colour = 0 @@ -702,6 +706,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
" dat += "Species:[pref_species.name]
" dat += "Custom Species Name:[custom_species ? custom_species : "None"]
" + //Added by SPLURT (Custom Blood Color) + dat += "Custom Blood Color:" + dat += "[custom_blood_color ? "Enabled" : "Disabled"]
" + if(custom_blood_color) + dat += "Blood Color: [blood_color] Change
" + /// dat += "Random Body:Randomize!
" dat += "Always Random Body:[be_random_body ? "Yes" : "No"]
" dat += "
Cycle background:[bgstate]
" @@ -3239,6 +3249,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) QDEL_NULL(parent.mob.hud_used) parent.mob.create_mob_hud() parent.mob.hud_used.show_hud(1, parent.mob) + //Added by SPLURT (Custom Blood Color) + if("toggle_custom_blood_color") + custom_blood_color = !custom_blood_color + if("blood_color") + var/pickedBloodColor = input(user, "Choose your blood color.", "Character Preference", blood_color) as color|null + if(!pickedBloodColor) + return + if(pickedBloodColor) + blood_color = sanitize_hexcolor(pickedBloodColor, 6, 1, initial(blood_color)) + if(!custom_blood_color) + custom_blood_color = TRUE + /// if("pda_style") var/pickedPDAStyle = input(user, "Choose your PDA style.", "Character Preference", pda_style) as null|anything in GLOB.pda_styles if(pickedPDAStyle) @@ -4241,6 +4263,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.dna.real_name = character.real_name character.dna.nameless = character.nameless character.dna.custom_species = character.custom_species + // Added by SPLURT (Custom Blood Color) + if(custom_blood_color) + character.dna.species.exotic_blood_color = blood_color var/old_size = RESIZE_DEFAULT_SIZE if(isdwarf(character)) diff --git a/modular_splurt/code/modules/client/preferences.dm b/modular_splurt/code/modules/client/preferences.dm index 8b41091ac9..4a39af798e 100644 --- a/modular_splurt/code/modules/client/preferences.dm +++ b/modular_splurt/code/modules/client/preferences.dm @@ -232,6 +232,10 @@ dat += "
" dat += "Species:[pref_species.name]
" dat += "Custom Species Name:[custom_species ? custom_species : "None"]
" + dat += "Custom Blood Color:" + dat += "[custom_blood_color ? "Enabled" : "Disabled"]
" + if(custom_blood_color) + dat += "Blood Color: [blood_color] Change
" dat += "Random Body:Randomize!
" dat += "Always Random Body:[be_random_body ? "Yes" : "No"]
" dat += "
Cycle background:[bgstate]
" diff --git a/modular_splurt/code/modules/client/preferences_savefile.dm b/modular_splurt/code/modules/client/preferences_savefile.dm index 15e4d0a232..e39a45efc3 100644 --- a/modular_splurt/code/modules/client/preferences_savefile.dm +++ b/modular_splurt/code/modules/client/preferences_savefile.dm @@ -8,9 +8,13 @@ // Get stomping preferences. S["stomp_pref"] >> stomppref - //Fuzzy scaling + // Fuzzy scaling S["feature_fuzzy"] >> fuzzy + // Custom blood color + S["custom_blood_color"] >> custom_blood_color // TRUE/FALSE - If custom blood color is enabled + S["blood_color"] >> blood_color // The custom blood color itself + //sanitize data show_in_directory = sanitize_integer(show_in_directory, 0, 1, initial(show_in_directory)) directory_tag = sanitize_inlist(directory_tag, GLOB.char_directory_tags, initial(directory_tag)) @@ -18,6 +22,8 @@ directory_ad = strip_html_simple(directory_ad, MAX_FLAVOR_LEN) stomppref = sanitize_integer(stomppref, 0, 1, initial(stomppref)) fuzzy = sanitize_integer(fuzzy, 0, 1, initial(fuzzy)) + custom_blood_color = sanitize_integer(custom_blood_color, 0, 1, initial(custom_blood_color)) + blood_color = sanitize_hexcolor(blood_color, 6, 1, initial(blood_color)) /datum/preferences/proc/splurt_character_pref_save(savefile/S) //TODO: modularize our other savefile edits... maybe? //Character directory @@ -29,9 +35,13 @@ // Stomping preferences. WRITE_FILE(S["stomp_pref"], stomppref) - //Fuzzy scaling + // Fuzzy scaling WRITE_FILE(S["feature_fuzzy"] , fuzzy) + // Custom blood color + WRITE_FILE(S["custom_blood_color"], custom_blood_color) + WRITE_FILE(S["blood_color"], blood_color) + /datum/preferences/update_preferences(current_version, savefile/S) . = ..() if(current_version < 57.01) //a