-
-
Notifications
You must be signed in to change notification settings - Fork 444
/
Copy pathpreferences_setup.dm
58 lines (44 loc) · 2.13 KB
/
preferences_setup.dm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/// Fully randomizes everything in the character.
/datum/preferences/proc/randomise_appearance_prefs(randomize_flags = ALL)
for (var/datum/preference/preference as anything in get_preferences_in_priority_order())
if (!preference.included_in_randomization_flags(randomize_flags))
continue
if (preference.is_randomizable())
write_preference(preference, preference.create_random_value(src))
/// Randomizes the character according to preferences.
/datum/preferences/proc/apply_character_randomization_prefs(antag_override = FALSE)
switch (read_preference(/datum/preference/choiced/random_body))
if (RANDOM_ANTAG_ONLY)
if (!antag_override)
return
if (RANDOM_DISABLED)
return
for (var/datum/preference/preference as anything in get_preferences_in_priority_order())
if (should_randomize(preference, antag_override))
write_preference(preference, preference.create_random_value(src))
/// Returns what job is marked as highest
/datum/preferences/proc/get_highest_priority_job()
var/datum/job/preview_job
var/highest_pref = 0
for(var/job in job_preferences)
if(job_preferences[job] > highest_pref)
preview_job = SSjob.GetJob(job)
highest_pref = job_preferences[job]
return preview_job
/datum/preferences/proc/render_new_preview_appearance(mob/living/carbon/human/dummy/mannequin)
var/datum/job/preview_job = get_highest_priority_job()
if(preview_job)
// Silicons only need a very basic preview since there is no customization for them.
if (istype(preview_job, /datum/job/ai))
return image('icons/mob/ai.dmi', icon_state = resolve_ai_icon(read_preference(/datum/preference/choiced/ai_core_display)), dir = SOUTH)
if (istype(preview_job, /datum/job/cyborg))
return image('icons/mob/robots.dmi', icon_state = "robot", dir = SOUTH)
// Set up the dummy for its photoshoot
mannequin.add_overlay(mutable_appearance('icons/turf/floors.dmi', background, layer = SPACE_LAYER))
apply_prefs_to(mannequin, TRUE)
if(preview_job)
if(preview_job.forced_species)
mannequin.set_species(preview_job.forced_species)
mannequin.job = preview_job.title
mannequin.dress_up_as_job(preview_job, TRUE)
return mannequin.appearance