mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 12:08:55 +01:00
Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) (#83021)
## About The Pull Request This PR moves random name generation for species onto their languages. What does this mean? - For species with a predefined name list, such as Lizards and Moths, nothing. - For species without predefined name lists, such as Felinids, their names will now be randomly generated from their language's syllables.   (In the prefs menu:)  Why? - Well, we actually had some dead code that did this. All I did was fix it up and re-enable it. - Generates some pretty believable in-universe names for various languages that are lacking name lists. Obviously defined lists would be preferred, but until they are added, at least. - Moves some stuff off of species, which is always nice. - Also hopefully makes it a tad easier to work with name generation. There's now a standard framework for getting a random name for a mob, and for getting a random name based on a species. Misc: - Adds a generic `species_prototype` global, uses it in a lot of places in prefs code. - Makes `GLOB.species_list` init via the global defines - Deletes Language SS - Alphabetizes some instances of admin tooling using the list of all species IDs - Docs language stuff - Deletes random_skin_tone, it does pretty much nothin ## Changelog 🆑 Melbert refactor: Random Name Generation has been refactored. Report any instances of people having weird (or "Unknown") names. qol: Felinids, Slimepeople, Podpeople, and some other species without defined namelists now automatically generate names based on their primary language(s). qol: More non-human names can be generated in codewords (and other misc. areas) than just lizard names. /🆑
This commit is contained in:
@@ -331,7 +331,7 @@ GLOBAL_LIST_INIT(preference_entries_by_key, init_preference_entries_by_key())
|
||||
)
|
||||
var/species_type = preferences.read_preference(/datum/preference/choiced/species)
|
||||
|
||||
var/datum/species/species = new species_type
|
||||
var/datum/species/species = GLOB.species_prototypes[species_type]
|
||||
if (!(savefile_key in species.get_features()))
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
return FALSE
|
||||
|
||||
var/species_type = preferences.read_preference(/datum/preference/choiced/species)
|
||||
var/datum/species/species = new species_type
|
||||
var/datum/species/species = GLOB.species_prototypes[species_type]
|
||||
return !(TRAIT_NO_UNDERWEAR in species.inherent_traits)
|
||||
|
||||
/datum/preference/choiced/underwear/compile_constant_data()
|
||||
|
||||
@@ -45,12 +45,11 @@
|
||||
target.log_mob_tag("TAG: [target.tag] RENAMED: [key_name(target)]")
|
||||
|
||||
/datum/preference/name/real_name/create_informed_default_value(datum/preferences/preferences)
|
||||
var/species_type = preferences.read_preference(/datum/preference/choiced/species)
|
||||
var/gender = preferences.read_preference(/datum/preference/choiced/gender)
|
||||
|
||||
var/datum/species/species = new species_type
|
||||
|
||||
return species.random_name(gender, unique = TRUE)
|
||||
return generate_random_name_species_based(
|
||||
preferences.read_preference(/datum/preference/choiced/gender),
|
||||
TRUE,
|
||||
preferences.read_preference(/datum/preference/choiced/species),
|
||||
)
|
||||
|
||||
/datum/preference/name/real_name/deserialize(input, datum/preferences/preferences)
|
||||
input = ..(input)
|
||||
@@ -73,9 +72,7 @@
|
||||
savefile_key = "human_name"
|
||||
|
||||
/datum/preference/name/backup_human/create_informed_default_value(datum/preferences/preferences)
|
||||
var/gender = preferences.read_preference(/datum/preference/choiced/gender)
|
||||
|
||||
return random_unique_name(gender)
|
||||
return generate_random_name(preferences.read_preference(/datum/preference/choiced/gender))
|
||||
|
||||
/datum/preference/name/clown
|
||||
savefile_key = "clown_name"
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
for (var/species_id in get_selectable_species())
|
||||
var/species_type = GLOB.species_list[species_id]
|
||||
var/datum/species/species = new species_type()
|
||||
var/datum/species/species = GLOB.species_prototypes[species_type]
|
||||
|
||||
data[species_id] = list()
|
||||
data[species_id]["name"] = species.name
|
||||
@@ -47,6 +47,4 @@
|
||||
data[species_id]["perks"] = species.get_species_perks()
|
||||
data[species_id]["diet"] = species.get_species_diet()
|
||||
|
||||
qdel(species)
|
||||
|
||||
return data
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
return FALSE
|
||||
|
||||
var/species_type = preferences.read_preference(/datum/preference/choiced/species)
|
||||
var/datum/species/species = new species_type
|
||||
var/datum/species/species = GLOB.species_prototypes[species_type]
|
||||
return !(TRAIT_FIXED_MUTANT_COLORS in species.inherent_traits)
|
||||
|
||||
/datum/preference/color/mutant_color/create_default_value()
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
return FALSE
|
||||
|
||||
var/species_type = preferences.read_preference(/datum/preference/choiced/species)
|
||||
var/datum/species/species = new species_type
|
||||
var/datum/species/species = GLOB.species_prototypes[species_type]
|
||||
return !(TRAIT_NO_UNDERWEAR in species.inherent_traits)
|
||||
|
||||
/datum/preference/color/underwear_color/apply_to_human(mob/living/carbon/human/target, value)
|
||||
|
||||
Reference in New Issue
Block a user