mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-09 07:08:03 +01:00
655b66bdd0
Revival of https://github.com/tgstation/tgstation/pull/86482, which is even more doable now that we have rustg iconforge generation. What this PR does: - Sets up every single GAGS icon in the game to have their own preview icon autogenerated during compile. This is configurable to not run during live. The icons are created in `icons/map_icons/..` - This also has the side effect of providing accurate GAGS icons for things like the loadout menu. No more having to create your own previews.  <details><summary>Mappers rejoice!</summary>   </details> <details><summary>Uses iconforge so it does not take up much time during init</summary>  </details> --- this still applies: Note for Spriters: After you've assigned the correct values to vars, you must run the game through init on your local machine and commit the changes to the map icon dmi files. Unit tests should catch all cases of forgetting to assign the correct vars, or not running through init. Note for Server Operators: In order to not generate these icons on live I've added a new config entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in the config.txt No more error icons in SDMM and loadout. 🆑 refactor: preview icons for greyscale items are now automatically generated, meaning you can see GAGS as they actually appear ingame while mapping or viewing the loadout menu. /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
308 lines
12 KiB
Plaintext
308 lines
12 KiB
Plaintext
/obj/item/encryptionkey
|
|
name = "standard encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey"
|
|
post_init_icon_state = "cypherkey_basic"
|
|
desc = "An encryption key for a radio headset."
|
|
w_class = WEIGHT_CLASS_TINY
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_basic
|
|
greyscale_colors = "#820a16#3758c4"
|
|
/// What channels does this encryption key grant to the parent headset.
|
|
var/list/channels = list()
|
|
/// Flags for which "special" radio networks should be accessible
|
|
var/special_channels = NONE
|
|
/// Assoc list of language to how well understood it is. 0 is invalid, 100 is perfect.
|
|
var/list/language_data
|
|
|
|
/obj/item/encryptionkey/examine(mob/user)
|
|
. = ..()
|
|
if(!LAZYLEN(channels) && !(special_channels & RADIO_SPECIAL_BINARY) && !LAZYLEN(language_data))
|
|
. += span_warning("Has no special codes in it. You should probably tell a coder!")
|
|
return
|
|
|
|
var/list/examine_text_list = list()
|
|
for(var/i in channels)
|
|
examine_text_list += "[GLOB.channel_tokens[i]] - [LOWER_TEXT(i)]"
|
|
|
|
if(special_channels & RADIO_SPECIAL_BINARY)
|
|
examine_text_list += "[GLOB.channel_tokens[MODE_BINARY]] - [MODE_BINARY]"
|
|
|
|
if(length(examine_text_list))
|
|
. += span_notice("It can access the following channels; [jointext(examine_text_list, ", ")].")
|
|
|
|
var/list/language_text_list = list()
|
|
for(var/lang in language_data)
|
|
var/langstring = "[GLOB.language_datum_instances[lang].name]"
|
|
switch(language_data[lang])
|
|
if(25 to 50)
|
|
langstring += " (poor)"
|
|
if(50 to 75)
|
|
langstring += " (average)"
|
|
if(75 to 100)
|
|
langstring += " (good)"
|
|
language_text_list += langstring
|
|
|
|
if(length(language_text_list))
|
|
. += span_notice("It can translate the following languages; [jointext(language_text_list, ", ")].")
|
|
|
|
/obj/item/encryptionkey/syndicate
|
|
name = "syndicate encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/syndicate"
|
|
post_init_icon_state = "cypherkey_syndicate"
|
|
channels = list(RADIO_CHANNEL_SYNDICATE = 1)
|
|
special_channels = RADIO_SPECIAL_SYNDIE
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_syndicate
|
|
greyscale_colors = "#171717#990000"
|
|
|
|
/obj/item/encryptionkey/binary
|
|
name = "binary translator key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/binary"
|
|
post_init_icon_state = "cypherkey_basic"
|
|
special_channels = RADIO_SPECIAL_BINARY
|
|
language_data = list(
|
|
/datum/language/machine = 100,
|
|
)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_basic
|
|
greyscale_colors = "#24a157#3758c4"
|
|
|
|
/obj/item/encryptionkey/headset_sec
|
|
name = "security radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_sec"
|
|
post_init_icon_state = "cypherkey_security"
|
|
channels = list(RADIO_CHANNEL_SECURITY = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_security
|
|
greyscale_colors = "#820a16#280b1a"
|
|
|
|
/obj/item/encryptionkey/headset_eng
|
|
name = "engineering radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_eng"
|
|
post_init_icon_state = "cypherkey_engineering"
|
|
channels = list(RADIO_CHANNEL_ENGINEERING = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_engineering
|
|
greyscale_colors = "#f8d860#dca01b"
|
|
|
|
/obj/item/encryptionkey/headset_rob
|
|
name = "robotics radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_rob"
|
|
post_init_icon_state = "cypherkey_engineering"
|
|
channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_ENGINEERING = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_engineering
|
|
greyscale_colors = "#793a80#dca01b"
|
|
|
|
/obj/item/encryptionkey/headset_med
|
|
name = "medical radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_med"
|
|
post_init_icon_state = "cypherkey_medical"
|
|
channels = list(RADIO_CHANNEL_MEDICAL = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_medical
|
|
greyscale_colors = "#ebebeb#69abd1"
|
|
|
|
/obj/item/encryptionkey/headset_sci
|
|
name = "science radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_sci"
|
|
post_init_icon_state = "cypherkey_research"
|
|
channels = list(RADIO_CHANNEL_SCIENCE = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_research
|
|
greyscale_colors = "#793a80#bc4a9b"
|
|
|
|
/obj/item/encryptionkey/headset_medsci
|
|
name = "medical research radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_medsci"
|
|
post_init_icon_state = "cypherkey_medical"
|
|
channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_MEDICAL = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_medical
|
|
greyscale_colors = "#ebebeb#9d1de8"
|
|
|
|
/obj/item/encryptionkey/headset_srvsec
|
|
name = "law and order radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_srvsec"
|
|
post_init_icon_state = "cypherkey_service"
|
|
channels = list(RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_SECURITY = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_service
|
|
greyscale_colors = "#820a16#3bca5a"
|
|
|
|
/obj/item/encryptionkey/headset_srvmed
|
|
name = "psychology radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_srvmed"
|
|
post_init_icon_state = "cypherkey_service"
|
|
channels = list(RADIO_CHANNEL_MEDICAL = 1, RADIO_CHANNEL_SERVICE = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_service
|
|
greyscale_colors = "#ebebeb#3bca5a"
|
|
|
|
/obj/item/encryptionkey/headset_srvent
|
|
name = "press radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_srvent"
|
|
post_init_icon_state = "cypherkey_service"
|
|
channels = list(RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_ENTERTAINMENT = 0)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_service
|
|
greyscale_colors = "#83eb8f#3bca5a"
|
|
|
|
/obj/item/encryptionkey/headset_com
|
|
name = "command radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_com"
|
|
post_init_icon_state = "cypherkey_cube"
|
|
channels = list(RADIO_CHANNEL_COMMAND = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_cube
|
|
greyscale_colors = "#2b2793#67a552"
|
|
|
|
/obj/item/encryptionkey/heads
|
|
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
|
|
|
|
/obj/item/encryptionkey/heads/captain
|
|
name = "\proper the captain's encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/heads/captain"
|
|
post_init_icon_state = "cypherkey_cube"
|
|
channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_ENGINEERING = 0, RADIO_CHANNEL_SCIENCE = 0, RADIO_CHANNEL_MEDICAL = 0, RADIO_CHANNEL_SUPPLY = 0, RADIO_CHANNEL_SERVICE = 0)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_cube
|
|
greyscale_colors = "#2b2793#dca01b"
|
|
|
|
/obj/item/encryptionkey/heads/rd
|
|
name = "\proper the research director's encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/heads/rd"
|
|
post_init_icon_state = "cypherkey_research"
|
|
channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_COMMAND = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_research
|
|
greyscale_colors = "#bc4a9b#793a80"
|
|
|
|
/obj/item/encryptionkey/heads/hos
|
|
name = "\proper the head of security's encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/heads/hos"
|
|
post_init_icon_state = "cypherkey_security"
|
|
channels = list(RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_COMMAND = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_security
|
|
greyscale_colors = "#280b1a#820a16"
|
|
|
|
/obj/item/encryptionkey/heads/ce
|
|
name = "\proper the chief engineer's encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/heads/ce"
|
|
post_init_icon_state = "cypherkey_engineering"
|
|
channels = list(RADIO_CHANNEL_ENGINEERING = 1, RADIO_CHANNEL_COMMAND = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_engineering
|
|
greyscale_colors = "#dca01b#f8d860"
|
|
|
|
/obj/item/encryptionkey/heads/cmo
|
|
name = "\proper the chief medical officer's encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/heads/cmo"
|
|
post_init_icon_state = "cypherkey_medical"
|
|
channels = list(RADIO_CHANNEL_MEDICAL = 1, RADIO_CHANNEL_COMMAND = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_medical
|
|
greyscale_colors = "#ebebeb#2b2793"
|
|
|
|
/obj/item/encryptionkey/heads/hop
|
|
name = "\proper the head of personnel's encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/heads/hop"
|
|
post_init_icon_state = "cypherkey_cube"
|
|
channels = list(RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_COMMAND = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_cube
|
|
greyscale_colors = "#2b2793#c2c1c9"
|
|
|
|
/obj/item/encryptionkey/heads/qm
|
|
name = "\proper the quartermaster's encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/heads/qm"
|
|
post_init_icon_state = "cypherkey_cargo"
|
|
channels = list(RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_COMMAND = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_cargo
|
|
greyscale_colors = "#49241a#dca01b"
|
|
|
|
/obj/item/encryptionkey/headset_cargo
|
|
name = "supply radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_cargo"
|
|
post_init_icon_state = "cypherkey_cargo"
|
|
channels = list(RADIO_CHANNEL_SUPPLY = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_cargo
|
|
greyscale_colors = "#49241a#7b3f2e"
|
|
|
|
/obj/item/encryptionkey/headset_mining
|
|
name = "mining radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_mining"
|
|
post_init_icon_state = "cypherkey_cargo"
|
|
channels = list(RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_SCIENCE = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_cargo
|
|
greyscale_colors = "#49241a#bc4a9b"
|
|
|
|
/obj/item/encryptionkey/headset_service
|
|
name = "service radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_service"
|
|
post_init_icon_state = "cypherkey_service"
|
|
channels = list(RADIO_CHANNEL_SERVICE = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_service
|
|
greyscale_colors = "#3758c4#3bca5a"
|
|
|
|
/obj/item/encryptionkey/headset_cent
|
|
name = "\improper CentCom radio encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/headset_cent"
|
|
post_init_icon_state = "cypherkey_centcom"
|
|
special_channels = RADIO_SPECIAL_CENTCOM
|
|
channels = list(RADIO_CHANNEL_CENTCOM = 1)
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_centcom
|
|
greyscale_colors = "#24a157#dca01b"
|
|
|
|
/obj/item/encryptionkey/ai //ported from NT, this goes 'inside' the AI.
|
|
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
|
|
channels = list(
|
|
RADIO_CHANNEL_COMMAND = 1,
|
|
RADIO_CHANNEL_SECURITY = 1,
|
|
RADIO_CHANNEL_ENGINEERING = 1,
|
|
RADIO_CHANNEL_SCIENCE = 1,
|
|
RADIO_CHANNEL_MEDICAL = 1,
|
|
RADIO_CHANNEL_SUPPLY = 1,
|
|
RADIO_CHANNEL_SERVICE = 1,
|
|
RADIO_CHANNEL_AI_PRIVATE = 1,
|
|
RADIO_CHANNEL_ENTERTAINMENT = 1,
|
|
)
|
|
|
|
/obj/item/encryptionkey/ai_with_binary
|
|
name = "ai encryption key"
|
|
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
|
|
channels = list(
|
|
RADIO_CHANNEL_COMMAND = 1,
|
|
RADIO_CHANNEL_SECURITY = 1,
|
|
RADIO_CHANNEL_ENGINEERING = 1,
|
|
RADIO_CHANNEL_SCIENCE = 1,
|
|
RADIO_CHANNEL_MEDICAL = 1,
|
|
RADIO_CHANNEL_SUPPLY = 1,
|
|
RADIO_CHANNEL_SERVICE = 1,
|
|
RADIO_CHANNEL_AI_PRIVATE = 1,
|
|
RADIO_CHANNEL_ENTERTAINMENT = 1,
|
|
)
|
|
special_channels = RADIO_SPECIAL_BINARY
|
|
language_data = list(
|
|
/datum/language/machine = 100,
|
|
)
|
|
|
|
/obj/item/encryptionkey/ai/evil //ported from NT, this goes 'inside' the AI.
|
|
name = "syndicate binary encryption key"
|
|
icon = 'icons/map_icons/items/encryptionkey.dmi'
|
|
icon_state = "/obj/item/encryptionkey/ai_with_binary"
|
|
post_init_icon_state = "cypherkey_syndicate"
|
|
channels = list(RADIO_CHANNEL_SYNDICATE = 1)
|
|
special_channels = RADIO_SPECIAL_SYNDIE
|
|
greyscale_config = /datum/greyscale_config/encryptionkey_syndicate
|
|
greyscale_colors = "#171717#990000"
|
|
|
|
/obj/item/encryptionkey/secbot
|
|
channels = list(RADIO_CHANNEL_AI_PRIVATE = 1, RADIO_CHANNEL_SECURITY = 1)
|