mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
[MIRROR] Convert preferences to /tg/ preferences (#9797)
Co-authored-by: ShadowLarkens <shadowlarkens@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
689b354903
commit
039ee85382
@@ -1,3 +1,44 @@
|
||||
/// Assets generated from `/datum/preference` icons
|
||||
/datum/asset/spritesheet/preferences
|
||||
name = "preferences"
|
||||
early = TRUE
|
||||
|
||||
/datum/asset/spritesheet/preferences/create_spritesheets()
|
||||
var/list/to_insert = list()
|
||||
|
||||
for(var/preference_key in GLOB.preference_entries_by_key)
|
||||
var/datum/preference/choiced/preference = GLOB.preference_entries_by_key[preference_key]
|
||||
if(!istype(preference))
|
||||
continue
|
||||
|
||||
if(!preference.should_generate_icons)
|
||||
continue
|
||||
|
||||
for(var/preference_value in preference.get_choices())
|
||||
var/create_icon_of = preference.icon_for(preference_value)
|
||||
|
||||
var/icon/icon
|
||||
var/icon_state
|
||||
|
||||
if(ispath(create_icon_of, /atom))
|
||||
var/atom/atom_icon_source = create_icon_of
|
||||
icon = initial(atom_icon_source.icon)
|
||||
icon_state = initial(atom_icon_source.icon_state)
|
||||
else if(isicon(create_icon_of))
|
||||
icon = create_icon_of
|
||||
else
|
||||
CRASH("[create_icon_of] is an invalid preference value (from [preference_key]:[preference_value]).")
|
||||
|
||||
to_insert[preference.get_spritesheet_key(preference.pref_serialize(preference_value))] = list(icon, icon_state)
|
||||
|
||||
for(var/spritesheet_key in to_insert)
|
||||
var/list/inserting = to_insert[spritesheet_key]
|
||||
Insert(spritesheet_key, inserting[1], inserting[2])
|
||||
|
||||
/// Returns the key that will be used in the spritesheet for a given value.
|
||||
/datum/preference/proc/get_spritesheet_key(value)
|
||||
return "[savefile_key]___[sanitize_css_class_name(value)]"
|
||||
|
||||
/// Sends information needed for shared details on individual preferences
|
||||
/datum/asset/json/preferences
|
||||
name = "preferences"
|
||||
|
||||
Reference in New Issue
Block a user