mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 21:40:55 +01:00
Ghostrole ID and Citizenship (#13904)
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
if(!istype(H))
|
||||
return
|
||||
|
||||
H.change_appearance(APPEARANCE_ALL, H, TRUE, H.generate_valid_species(), null, default_state, src)
|
||||
H.change_appearance(APPEARANCE_ALL, H, TRUE, H.generate_valid_species(), null, default_state, src, update_id = TRUE)
|
||||
var/getName = sanitizeName(sanitize_readd_odd_symbols(sanitize(input(H, "Would you like to change your name to something else?", "Name change") as null|text)))
|
||||
if(getName)
|
||||
H.real_name = getName
|
||||
|
||||
@@ -106,12 +106,6 @@
|
||||
M.forceMove(T)
|
||||
M.lastarea = get_area(M.loc) //So gravity doesnt fuck them.
|
||||
|
||||
//Setup the appearance
|
||||
if(allow_appearance_change)
|
||||
M.change_appearance(allow_appearance_change, M)
|
||||
else //otherwise randomize
|
||||
M.client.prefs.randomize_appearance_for(M, FALSE)
|
||||
|
||||
//Setup the mob age and name
|
||||
if(!mname)
|
||||
mname = random_name(M.gender, M.species.name)
|
||||
@@ -134,6 +128,12 @@
|
||||
M.preEquipOutfit(outfit, FALSE)
|
||||
M.equipOutfit(outfit, FALSE)
|
||||
|
||||
//Setup the appearance
|
||||
if(allow_appearance_change)
|
||||
M.change_appearance(allow_appearance_change, M, update_id = TRUE)
|
||||
else //otherwise randomize
|
||||
M.client.prefs.randomize_appearance_for(M, FALSE)
|
||||
|
||||
for(var/language in extra_languages)
|
||||
M.add_language(language)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/carbon/human/proc/change_appearance(var/flags = APPEARANCE_ALL_HAIR, var/mob/user = src, var/check_species_whitelist = TRUE, var/list/species_whitelist = list(), var/list/species_blacklist = list(), var/datum/topic_state/ui_state = interactive_state, var/datum/state_object = src)
|
||||
var/datum/vueui_module/appearance_changer/AC = new /datum/vueui_module/appearance_changer(src, check_species_whitelist, species_whitelist, species_blacklist, ui_state, state_object)
|
||||
/mob/living/carbon/human/proc/change_appearance(var/flags = APPEARANCE_ALL_HAIR, var/mob/user = src, var/check_species_whitelist = TRUE, var/list/species_whitelist = list(), var/list/species_blacklist = list(), var/datum/topic_state/ui_state = interactive_state, var/datum/state_object = src, var/update_id = FALSE)
|
||||
var/datum/vueui_module/appearance_changer/AC = new /datum/vueui_module/appearance_changer(src, check_species_whitelist, species_whitelist, species_blacklist, ui_state, state_object, update_id)
|
||||
AC.flags = flags
|
||||
AC.ui_interact(user)
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
var/datum/state_object
|
||||
|
||||
var/datum/weakref/target_human
|
||||
var/datum/weakref/target_id //Mostly for ghostroles and plastic surgery machines. If there is an ID, update it when we close the UI to ensure the correct info is imprinted.
|
||||
var/change_id = FALSE //Prevents runtimes in vueui_on_close if target_id is null
|
||||
var/list/valid_species = list()
|
||||
var/list/valid_genders = list()
|
||||
var/list/valid_pronouns = list()
|
||||
@@ -13,6 +15,7 @@
|
||||
var/list/valid_facial_hairstyles = list()
|
||||
var/list/valid_cultures = list()
|
||||
var/list/valid_origins = list()
|
||||
var/list/valid_citizenships = list()
|
||||
var/list/valid_accents = list()
|
||||
var/list/valid_languages = list()
|
||||
|
||||
@@ -20,11 +23,16 @@
|
||||
var/list/whitelist
|
||||
var/list/blacklist
|
||||
|
||||
/datum/vueui_module/appearance_changer/New(var/mob/living/carbon/human/H, var/check_species_whitelist = 1, var/list/species_whitelist = list(), var/list/species_blacklist = list(), var/datum/topic_state/set_ui_state = interactive_state, var/datum/set_state_object = null)
|
||||
/datum/vueui_module/appearance_changer/New(var/mob/living/carbon/human/H, var/check_species_whitelist = 1, var/list/species_whitelist = list(), var/list/species_blacklist = list(), var/datum/topic_state/set_ui_state = interactive_state, var/datum/set_state_object = null, var/update_id)
|
||||
..()
|
||||
ui_state = set_ui_state
|
||||
state_object = set_state_object
|
||||
target_human = WEAKREF(H)
|
||||
if(istype(H) && update_id)
|
||||
var/obj/item/card/id/idcard = H.GetIdCard()
|
||||
if(idcard)
|
||||
target_id = WEAKREF(idcard)
|
||||
change_id = TRUE
|
||||
src.check_whitelist = check_species_whitelist
|
||||
src.whitelist = species_whitelist
|
||||
src.blacklist = species_blacklist
|
||||
@@ -144,6 +152,13 @@
|
||||
owner.citizenship = new_origin.possible_citizenships[1]
|
||||
clear_and_generate_data()
|
||||
return 1
|
||||
if(href_list["citizenship"])
|
||||
if(can_change(APPEARANCE_CULTURE))
|
||||
var/new_citizenship = href_list["citizenship"]
|
||||
if(new_citizenship in valid_citizenships)
|
||||
owner.citizenship = new_citizenship
|
||||
clear_and_generate_data()
|
||||
return 1
|
||||
if(href_list["accent"])
|
||||
if(can_change(APPEARANCE_CULTURE))
|
||||
if(owner.set_accent(href_list["accent"]))
|
||||
@@ -189,6 +204,8 @@
|
||||
data["valid_cultures"] = valid_cultures
|
||||
data["owner_origin"] = owner.origin.name
|
||||
data["valid_origins"] = valid_origins
|
||||
data["owner_citizenship"] = owner.citizenship
|
||||
data["valid_citizenships"] = valid_citizenships
|
||||
data["owner_accent"] = owner.accent
|
||||
data["valid_accents"] = valid_accents
|
||||
|
||||
@@ -217,6 +234,14 @@
|
||||
|
||||
return data
|
||||
|
||||
/datum/vueui_module/appearance_changer/vueui_on_close(var/datum/vueui/ui)
|
||||
if(change_id)
|
||||
var/mob/living/carbon/human/owner = target_human.resolve()
|
||||
var/obj/item/card/id/I = target_id.resolve()
|
||||
if(!istype(I) || !(istype(owner)))
|
||||
return FALSE
|
||||
owner.set_id_info(I)
|
||||
|
||||
/datum/vueui_module/appearance_changer/proc/update_dna()
|
||||
var/mob/living/carbon/human/owner = target_human.resolve()
|
||||
if(!istype(owner))
|
||||
@@ -256,6 +281,7 @@
|
||||
valid_facial_hairstyles = list()
|
||||
valid_cultures = list()
|
||||
valid_origins = list()
|
||||
valid_citizenships = list()
|
||||
valid_accents = list()
|
||||
valid_languages = list()
|
||||
generate_data()
|
||||
@@ -282,6 +308,7 @@
|
||||
for(var/origin in OC.possible_origins)
|
||||
var/decl/origin_item/origin/OI = decls_repository.get_decl(origin)
|
||||
valid_origins[OI.name] = OI
|
||||
valid_citizenships = owner.origin.possible_citizenships
|
||||
valid_accents = owner.origin.possible_accents
|
||||
if(!length(valid_languages))
|
||||
valid_languages = owner.generate_valid_languages()
|
||||
Reference in New Issue
Block a user