From a082f076696bed87e9c3fcf062e5a17b77888114 Mon Sep 17 00:00:00 2001 From: Tom <8881105+tf-4@users.noreply.github.com> Date: Thu, 21 Jul 2022 16:28:57 +0100 Subject: [PATCH] [MODULARISATION AUDIT] Modularising some emissive bits (#15074) * modularising emissives * this is so me when i forgot to save changes to tgstation.dme! --- .../modules/client/preferences/_preference.dm | 81 ------------------- code/modules/surgery/organs/eyes.dm | 4 +- .../modules/client/preferences/_preference.dm | 77 ++++++++++++++++++ .../modules/surgery/organs/eyes.dm | 3 + tgstation.dme | 2 + 5 files changed, 83 insertions(+), 84 deletions(-) create mode 100644 modular_skyrat/master_files/code/modules/client/preferences/_preference.dm create mode 100644 modular_skyrat/modules/customization/modules/surgery/organs/eyes.dm diff --git a/code/modules/client/preferences/_preference.dm b/code/modules/client/preferences/_preference.dm index 12be080d805..a11f33f1118 100644 --- a/code/modules/client/preferences/_preference.dm +++ b/code/modules/client/preferences/_preference.dm @@ -542,84 +542,3 @@ GLOBAL_LIST_INIT(preference_entries_by_key, init_preference_entries_by_key()) /datum/preference/toggle/is_valid(value) return value == TRUE || value == FALSE - -// SKYRAT EDIT BELOW -/// A preference for text and text input. -/datum/preference/text - abstract_type = /datum/preference/text - -/datum/preference/text/deserialize(input, datum/preferences/preferences) - return STRIP_HTML_SIMPLE(input, MAX_FLAVOR_LEN) - -/datum/preference/text/create_default_value() - return "" - -/datum/preference/text/is_valid(value) - return istext(value) - -/datum/preference/tri_color - abstract_type = /datum/preference/tri_color - var/type_to_check = /datum/preference/toggle/allow_mismatched_parts - var/check_mode = TRICOLOR_CHECK_BOOLEAN - -/datum/preference/tri_color/deserialize(input, datum/preferences/preferences) - var/list/input_colors = input - return list(sanitize_hexcolor(input_colors[1]), sanitize_hexcolor(input_colors[2]), sanitize_hexcolor(input_colors[3])) - -/datum/preference/tri_color/create_default_value() - return list("#[random_color()]", "#[random_color()]", "#[random_color()]") - -/datum/preference/tri_color/is_valid(list/value) - return islist(value) && value.len == 3 && (findtext(value[1], GLOB.is_color) && findtext(value[2], GLOB.is_color) && findtext(value[3], GLOB.is_color)) - -/datum/preference/tri_color/is_accessible(datum/preferences/preferences) - if (check_mode == TRICOLOR_NO_CHECK || type == abstract_type) - return ..(preferences) - var/passed_initial_check = ..(preferences) - var/allowed = preferences.read_preference(/datum/preference/toggle/allow_mismatched_parts) - var/part_enabled = preferences.read_preference(type_to_check) - if(check_mode == TRICOLOR_CHECK_ACCESSORY) - part_enabled = is_factual_sprite_accessory(relevant_mutant_bodypart, part_enabled) - return ((passed_initial_check || allowed) && part_enabled) - -/datum/preference/tri_color/apply_to_human(mob/living/carbon/human/target, value) - if (type == abstract_type) - return ..() - if(!target.dna.mutant_bodyparts[relevant_mutant_bodypart]) - target.dna.mutant_bodyparts[relevant_mutant_bodypart] = list(MUTANT_INDEX_NAME = "None", MUTANT_INDEX_COLOR_LIST = list("#FFFFFF", "#FFFFFF", "#FFFFFF"), MUTANT_INDEX_EMISSIVE_LIST = list(FALSE, FALSE, FALSE)) - target.dna.mutant_bodyparts[relevant_mutant_bodypart][MUTANT_INDEX_COLOR_LIST] = list(sanitize_hexcolor(value[1]), sanitize_hexcolor(value[2]), sanitize_hexcolor(value[3])) - -/datum/preference/tri_bool - abstract_type = /datum/preference/tri_bool - var/type_to_check = /datum/preference/toggle/allow_mismatched_parts - var/check_mode = TRICOLOR_CHECK_BOOLEAN - -/datum/preference/tri_bool/deserialize(input, datum/preferences/preferences) - var/list/input_bools = input - return list(sanitize_integer(input_bools[1]), sanitize_integer(input_bools[2]), sanitize_integer(input_bools[3])) - -/datum/preference/tri_bool/create_default_value() - return list(FALSE, FALSE, FALSE) - -/datum/preference/tri_bool/is_valid(list/value) - return islist(value) && value.len == 3 && isnum(value[1]) && isnum(value[2]) && isnum(value[3]) - -/datum/preference/tri_bool/is_accessible(datum/preferences/preferences) - if(type == abstract_type) - return ..(preferences) - var/passed_initial_check = ..(preferences) - var/allowed = preferences.read_preference(/datum/preference/toggle/allow_mismatched_parts) - var/emissives_allowed = preferences.read_preference(/datum/preference/toggle/allow_emissives) - var/part_enabled = preferences.read_preference(type_to_check) - if(check_mode == TRICOLOR_CHECK_ACCESSORY) - part_enabled = is_factual_sprite_accessory(relevant_mutant_bodypart, part_enabled) - return ((passed_initial_check || allowed) && part_enabled && emissives_allowed) - -/datum/preference/tri_bool/apply_to_human(mob/living/carbon/human/target, value) - if (type == abstract_type) - return ..() - if(!target.dna.mutant_bodyparts[relevant_mutant_bodypart]) - target.dna.mutant_bodyparts[relevant_mutant_bodypart] = list(MUTANT_INDEX_NAME = "None", MUTANT_INDEX_COLOR_LIST = list("#FFFFFF", "#FFFFFF", "#FFFFFF"), MUTANT_INDEX_EMISSIVE_LIST = list(FALSE, FALSE, FALSE)) - target.dna.mutant_bodyparts[relevant_mutant_bodypart][MUTANT_INDEX_EMISSIVE_LIST] = list(sanitize_integer(value[1]), sanitize_integer(value[2]), sanitize_integer(value[3])) - -// SKYRAT EDIT END diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index ea38d4fc3b9..b6d3aa0eead 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -36,8 +36,6 @@ var/no_glasses /// indication that the eyes are undergoing some negative effect var/damaged = FALSE - var/is_emissive = FALSE //SKYRAT EDIT ADDITION - var/eyes_layer = BODY_LAYER //SKYRAT EDIT ADDITION /obj/item/organ/internal/eyes/Insert(mob/living/carbon/eye_owner, special = FALSE, drop_if_replaced = FALSE, initialising) . = ..() @@ -105,7 +103,7 @@ eye_owner.set_blurriness(0) eye_owner.clear_fullscreen("eye_damage", 0) eye_owner.update_sight() - is_emissive = FALSE + is_emissive = FALSE // SKYRAT EDIT ADDITION #define OFFSET_X 1 #define OFFSET_Y 2 diff --git a/modular_skyrat/master_files/code/modules/client/preferences/_preference.dm b/modular_skyrat/master_files/code/modules/client/preferences/_preference.dm new file mode 100644 index 00000000000..78bd0aa8450 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/client/preferences/_preference.dm @@ -0,0 +1,77 @@ +/// A preference for text and text input. +/datum/preference/text + abstract_type = /datum/preference/text + +/datum/preference/text/deserialize(input, datum/preferences/preferences) + return STRIP_HTML_SIMPLE(input, MAX_FLAVOR_LEN) + +/datum/preference/text/create_default_value() + return "" + +/datum/preference/text/is_valid(value) + return istext(value) + +/datum/preference/tri_color + abstract_type = /datum/preference/tri_color + var/type_to_check = /datum/preference/toggle/allow_mismatched_parts + var/check_mode = TRICOLOR_CHECK_BOOLEAN + +/datum/preference/tri_color/deserialize(input, datum/preferences/preferences) + var/list/input_colors = input + return list(sanitize_hexcolor(input_colors[1]), sanitize_hexcolor(input_colors[2]), sanitize_hexcolor(input_colors[3])) + +/datum/preference/tri_color/create_default_value() + return list("#[random_color()]", "#[random_color()]", "#[random_color()]") + +/datum/preference/tri_color/is_valid(list/value) + return islist(value) && value.len == 3 && (findtext(value[1], GLOB.is_color) && findtext(value[2], GLOB.is_color) && findtext(value[3], GLOB.is_color)) + +/datum/preference/tri_color/is_accessible(datum/preferences/preferences) + if (check_mode == TRICOLOR_NO_CHECK || type == abstract_type) + return ..(preferences) + var/passed_initial_check = ..(preferences) + var/allowed = preferences.read_preference(/datum/preference/toggle/allow_mismatched_parts) + var/part_enabled = preferences.read_preference(type_to_check) + if(check_mode == TRICOLOR_CHECK_ACCESSORY) + part_enabled = is_factual_sprite_accessory(relevant_mutant_bodypart, part_enabled) + return ((passed_initial_check || allowed) && part_enabled) + +/datum/preference/tri_color/apply_to_human(mob/living/carbon/human/target, value) + if (type == abstract_type) + return ..() + if(!target.dna.mutant_bodyparts[relevant_mutant_bodypart]) + target.dna.mutant_bodyparts[relevant_mutant_bodypart] = list(MUTANT_INDEX_NAME = "None", MUTANT_INDEX_COLOR_LIST = list("#FFFFFF", "#FFFFFF", "#FFFFFF"), MUTANT_INDEX_EMISSIVE_LIST = list(FALSE, FALSE, FALSE)) + target.dna.mutant_bodyparts[relevant_mutant_bodypart][MUTANT_INDEX_COLOR_LIST] = list(sanitize_hexcolor(value[1]), sanitize_hexcolor(value[2]), sanitize_hexcolor(value[3])) + +/datum/preference/tri_bool + abstract_type = /datum/preference/tri_bool + var/type_to_check = /datum/preference/toggle/allow_mismatched_parts + var/check_mode = TRICOLOR_CHECK_BOOLEAN + +/datum/preference/tri_bool/deserialize(input, datum/preferences/preferences) + var/list/input_bools = input + return list(sanitize_integer(input_bools[1]), sanitize_integer(input_bools[2]), sanitize_integer(input_bools[3])) + +/datum/preference/tri_bool/create_default_value() + return list(FALSE, FALSE, FALSE) + +/datum/preference/tri_bool/is_valid(list/value) + return islist(value) && value.len == 3 && isnum(value[1]) && isnum(value[2]) && isnum(value[3]) + +/datum/preference/tri_bool/is_accessible(datum/preferences/preferences) + if(type == abstract_type) + return ..(preferences) + var/passed_initial_check = ..(preferences) + var/allowed = preferences.read_preference(/datum/preference/toggle/allow_mismatched_parts) + var/emissives_allowed = preferences.read_preference(/datum/preference/toggle/allow_emissives) + var/part_enabled = preferences.read_preference(type_to_check) + if(check_mode == TRICOLOR_CHECK_ACCESSORY) + part_enabled = is_factual_sprite_accessory(relevant_mutant_bodypart, part_enabled) + return ((passed_initial_check || allowed) && part_enabled && emissives_allowed) + +/datum/preference/tri_bool/apply_to_human(mob/living/carbon/human/target, value) + if (type == abstract_type) + return ..() + if(!target.dna.mutant_bodyparts[relevant_mutant_bodypart]) + target.dna.mutant_bodyparts[relevant_mutant_bodypart] = list(MUTANT_INDEX_NAME = "None", MUTANT_INDEX_COLOR_LIST = list("#FFFFFF", "#FFFFFF", "#FFFFFF"), MUTANT_INDEX_EMISSIVE_LIST = list(FALSE, FALSE, FALSE)) + target.dna.mutant_bodyparts[relevant_mutant_bodypart][MUTANT_INDEX_EMISSIVE_LIST] = list(sanitize_integer(value[1]), sanitize_integer(value[2]), sanitize_integer(value[3])) diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/eyes.dm b/modular_skyrat/modules/customization/modules/surgery/organs/eyes.dm new file mode 100644 index 00000000000..bfb035d23c1 --- /dev/null +++ b/modular_skyrat/modules/customization/modules/surgery/organs/eyes.dm @@ -0,0 +1,3 @@ +/obj/item/organ/internal/eyes + var/is_emissive = FALSE + var/eyes_layer = BODY_LAYER diff --git a/tgstation.dme b/tgstation.dme index 4e1f4e631cd..0cbcda27446 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4763,6 +4763,7 @@ #include "modular_skyrat\master_files\code\modules\client\preferences.dm" #include "modular_skyrat\master_files\code\modules\client\preferences_savefile.dm" #include "modular_skyrat\master_files\code\modules\client\preferences\_admin.dm" +#include "modular_skyrat\master_files\code\modules\client\preferences\_preference.dm" #include "modular_skyrat\master_files\code\modules\client\preferences\auto_dementor.dm" #include "modular_skyrat\master_files\code\modules\client\preferences\be_antag.dm" #include "modular_skyrat\master_files\code\modules\client\preferences\clothing.dm" @@ -5350,6 +5351,7 @@ #include "modular_skyrat\modules\customization\modules\surgery\bodyparts\robot_bodyparts.dm" #include "modular_skyrat\modules\customization\modules\surgery\bodyparts\robot_parts.dm" #include "modular_skyrat\modules\customization\modules\surgery\organs\ears.dm" +#include "modular_skyrat\modules\customization\modules\surgery\organs\eyes.dm" #include "modular_skyrat\modules\customization\modules\surgery\organs\genitals.dm" #include "modular_skyrat\modules\customization\modules\surgery\organs\ipc.dm" #include "modular_skyrat\modules\customization\modules\surgery\organs\organ.dm"