mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-12 18:51:53 +00:00
* Job refactor 2: less hardcoded lists * CRITICAL DEP 1 * CRITCAL DEP 2 * Update nanotrasen_admiral.dm * Update nanotrasen_admiral.dm * Update nanotrasen_admiral.dm Co-authored-by: Rohesie <rohesie@gmail.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
139 lines
6.2 KiB
Plaintext
139 lines
6.2 KiB
Plaintext
//////////////////////////
|
|
/////Initial Building/////
|
|
//////////////////////////
|
|
|
|
/proc/make_datum_references_lists()
|
|
//hair
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, GLOB.hairstyles_list, GLOB.hairstyles_male_list, GLOB.hairstyles_female_list)
|
|
//facial hair
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, GLOB.facial_hairstyles_list, GLOB.facial_hairstyles_male_list, GLOB.facial_hairstyles_female_list)
|
|
//underwear
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f)
|
|
//undershirt
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f)
|
|
//socks
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list)
|
|
//bodypart accessories (blizzard intensifies)
|
|
//SKYRAT EDIT REMOVAL BEGIN - CUSTOMIZATION
|
|
/*
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/lizard, GLOB.animated_tails_list_lizard)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, GLOB.animated_tails_list_human)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/horns,GLOB.horns_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.ears_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, GLOB.wings_open_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, GLOB.frills_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, GLOB.spines_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, GLOB.animated_spines_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, GLOB.legs_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.r_wings_list,roundstart = TRUE)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/caps, GLOB.caps_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_wings, GLOB.moth_wings_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_antennae, GLOB.moth_antennae_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_markings, GLOB.moth_markings_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/monkey, GLOB.tails_list_monkey)
|
|
*/
|
|
//SKYRAT EDIT REMOVAL END
|
|
|
|
//SKYRAT EDIT ADDITION BEGIN
|
|
//Scream types
|
|
for(var/spath in subtypesof(/datum/scream_type))
|
|
var/datum/scream_type/S = new spath()
|
|
GLOB.scream_types[S.name] = spath
|
|
sortList(GLOB.scream_types, /proc/cmp_typepaths_asc)
|
|
|
|
//Laugh types
|
|
for(var/spath in subtypesof(/datum/laugh_type))
|
|
var/datum/laugh_type/L = new spath()
|
|
GLOB.laugh_types[L.name] = spath
|
|
sortList(GLOB.laugh_types, /proc/cmp_typepaths_asc)
|
|
|
|
//For alt titles.
|
|
for(var/spath in subtypesof(/datum/job))
|
|
var/datum/job/J = new spath()
|
|
if(istype(J, /datum/job/captain))
|
|
GLOB.captain_alttitles += J.alt_titles
|
|
if(/datum/job_department/central_command in J.departments_list)
|
|
GLOB.central_command_alttitles += J.alt_titles
|
|
if(/datum/job_department/command in J.departments_list)
|
|
GLOB.command_alttitles += J.alt_titles
|
|
if(/datum/job_department/security in J.departments_list)
|
|
GLOB.security_alttitles += J.alt_titles
|
|
if(/datum/job_department/cargo in J.departments_list)
|
|
GLOB.supply_alttitles += J.alt_titles
|
|
if(/datum/job_department/service in J.departments_list)
|
|
GLOB.service_alttitles += J.alt_titles
|
|
if(/datum/job_department/medical in J.departments_list)
|
|
GLOB.medical_alttitles += J.alt_titles
|
|
if(/datum/job_department/science in J.departments_list)
|
|
GLOB.science_alttitles += J.alt_titles
|
|
if(/datum/job_department/engineering in J.departments_list)
|
|
GLOB.engineering_alttitles += J.alt_titles
|
|
if(/datum/job_department/silicon in J.departments_list)
|
|
GLOB.nonhuman_alttitles += J.alt_titles
|
|
//SKYRAT EDIT END
|
|
|
|
//Species
|
|
for(var/spath in subtypesof(/datum/species))
|
|
var/datum/species/S = new spath()
|
|
GLOB.species_list[S.id] = spath
|
|
sortList(GLOB.species_list, /proc/cmp_typepaths_asc)
|
|
|
|
//Surgeries
|
|
for(var/path in subtypesof(/datum/surgery))
|
|
GLOB.surgeries_list += new path()
|
|
sortList(GLOB.surgeries_list, /proc/cmp_typepaths_asc)
|
|
|
|
// Hair Gradients - Initialise all /datum/sprite_accessory/hair_gradient into an list indexed by gradient-style name
|
|
for(var/path in subtypesof(/datum/sprite_accessory/hair_gradient))
|
|
var/datum/sprite_accessory/hair_gradient/H = new path()
|
|
GLOB.hair_gradients_list[H.name] = H
|
|
|
|
// Keybindings
|
|
init_keybindings()
|
|
|
|
GLOB.emote_list = init_emote_list()
|
|
|
|
make_skyrat_datum_references() //SKYRAT EDIT ADDITION - CUSTOMIZATION
|
|
init_crafting_recipes(GLOB.crafting_recipes)
|
|
|
|
init_subtypes_w_path_keys(/obj/projectile, GLOB.proj_by_path_key)
|
|
|
|
/// Inits the crafting recipe list, sorting crafting recipe requirements in the process.
|
|
/proc/init_crafting_recipes(list/crafting_recipes)
|
|
for(var/path in subtypesof(/datum/crafting_recipe))
|
|
var/datum/crafting_recipe/recipe = new path()
|
|
recipe.reqs = sortList(recipe.reqs, /proc/cmp_crafting_req_priority)
|
|
crafting_recipes += recipe
|
|
return crafting_recipes
|
|
|
|
//creates every subtype of prototype (excluding prototype) and adds it to list L.
|
|
//if no list/L is provided, one is created.
|
|
/proc/init_subtypes(prototype, list/L)
|
|
if(!istype(L))
|
|
L = list()
|
|
for(var/path in subtypesof(prototype))
|
|
L += new path()
|
|
return L
|
|
|
|
//returns a list of paths to every subtype of prototype (excluding prototype)
|
|
//if no list/L is provided, one is created.
|
|
/proc/init_paths(prototype, list/L)
|
|
if(!istype(L))
|
|
L = list()
|
|
for(var/path in subtypesof(prototype))
|
|
L+= path
|
|
return L
|
|
|
|
/// Functions like init_subtypes, but uses the subtype's path as a key for easy access
|
|
/proc/init_subtypes_w_path_keys(prototype, list/L)
|
|
if(!istype(L))
|
|
L = list()
|
|
for(var/path as anything in subtypesof(prototype))
|
|
L[path] = new path()
|
|
return L
|