/datum/category_item/player_setup_item/player_global/ui name = "UI" sort_order = 1 /datum/category_item/player_setup_item/player_global/ui/load_preferences(var/savefile/S) S["UI_style"] >> pref.UI_style S["UI_style_color"] >> pref.UI_style_color S["UI_style_alpha"] >> pref.UI_style_alpha S["ooccolor"] >> pref.ooccolor /datum/category_item/player_setup_item/player_global/ui/save_preferences(var/savefile/S) S["UI_style"] << pref.UI_style S["UI_style_color"] << pref.UI_style_color S["UI_style_alpha"] << pref.UI_style_alpha S["ooccolor"] << pref.ooccolor /datum/category_item/player_setup_item/player_global/ui/sanitize_preferences() pref.UI_style = sanitize_inlist(pref.UI_style, all_ui_styles, initial(pref.UI_style)) pref.UI_style_color = sanitize_hexcolor(pref.UI_style_color, initial(pref.UI_style_color)) pref.UI_style_alpha = sanitize_integer(pref.UI_style_alpha, 0, 255, initial(pref.UI_style_alpha)) pref.ooccolor = sanitize_hexcolor(pref.ooccolor, initial(pref.ooccolor)) /datum/category_item/player_setup_item/player_global/ui/content(var/mob/user) . = "UI Style: [pref.UI_style]
" . += "Custom UI (recommended for White UI):
" . += "-Color: [pref.UI_style_color] 
__
 reset
" . += "-Alpha(transparency): [pref.UI_style_alpha] reset
" if(can_select_ooc_color(user)) . += "OOC Color: " if(pref.ooccolor == initial(pref.ooccolor)) . += "Using Default
" else . += "[pref.ooccolor]
__
 reset
" /datum/category_item/player_setup_item/player_global/ui/OnTopic(var/href,var/list/href_list, var/mob/user) if(href_list["select_style"]) var/UI_style_new = input(user, "Choose UI style.", "Character Preference", pref.UI_style) as null|anything in all_ui_styles if(!UI_style_new || !CanUseTopic(user)) return TOPIC_NOACTION pref.UI_style = UI_style_new return TOPIC_REFRESH else if(href_list["select_color"]) var/UI_style_color_new = input(user, "Choose UI color, dark colors are not recommended!", "Global Preference", pref.UI_style_color) as color|null if(isnull(UI_style_color_new) || !CanUseTopic(user)) return TOPIC_NOACTION pref.UI_style_color = UI_style_color_new return TOPIC_REFRESH else if(href_list["select_alpha"]) var/UI_style_alpha_new = input(user, "Select UI alpha (transparency) level, between 50 and 255.", "Global Preference", pref.UI_style_alpha) as num|null if(isnull(UI_style_alpha_new) || (UI_style_alpha_new < 50 || UI_style_alpha_new > 255) || !CanUseTopic(user)) return TOPIC_NOACTION pref.UI_style_alpha = UI_style_alpha_new return TOPIC_REFRESH else if(href_list["select_ooc_color"]) var/new_ooccolor = input(user, "Choose OOC color:", "Global Preference") as color|null if(new_ooccolor && can_select_ooc_color(user) && CanUseTopic(user)) pref.ooccolor = new_ooccolor return TOPIC_REFRESH else if(href_list["reset"]) switch(href_list["reset"]) if("ui") pref.UI_style_color = initial(pref.UI_style_color) if("alpha") pref.UI_style_alpha = initial(pref.UI_style_alpha) if("ooc") pref.ooccolor = initial(pref.ooccolor) return TOPIC_REFRESH return ..() /datum/category_item/player_setup_item/player_global/ui/proc/can_select_ooc_color(var/mob/user) return config.allow_admin_ooccolor && check_rights(R_ADMIN, 0, user)