De-hardcodes the species preference pages, deleting the species pages and generating them in constant data on the DM side instead (#65140)

This commit is contained in:
MrMelbert
2022-02-26 19:04:34 -08:00
committed by GitHub
parent 9bc5cf4263
commit 7bb2f0b96c
39 changed files with 1303 additions and 693 deletions
+12 -20
View File
@@ -32,29 +32,21 @@
/datum/preference/choiced/species/compile_constant_data()
var/list/data = list()
var/list/food_flags = FOOD_FLAGS
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 = new species_type()
var/list/diet = list()
data[species_id] = list()
data[species_id]["name"] = species.name
data[species_id]["desc"] = species.get_species_description()
data[species_id]["lore"] = species.get_species_lore()
data[species_id]["icon"] = sanitize_css_class_name(species.name)
data[species_id]["use_skintones"] = species.use_skintones
data[species_id]["sexes"] = species.sexes
data[species_id]["enabled_features"] = species.get_features()
data[species_id]["perks"] = species.get_species_perks()
data[species_id]["diet"] = species.get_species_diet()
if (!(TRAIT_NOHUNGER in species.inherent_traits))
diet = list(
"liked_food" = bitfield_to_list(species.liked_food, food_flags),
"disliked_food" = bitfield_to_list(species.disliked_food, food_flags),
"toxic_food" = bitfield_to_list(species.toxic_food, food_flags),
)
data[species_id] = list(
"name" = species.name,
"icon" = sanitize_css_class_name(species.name),
"use_skintones" = species.use_skintones,
"sexes" = species.sexes,
"enabled_features" = species.get_features(),
) + diet
qdel(species)
return data