diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index f24fff24a9d..e9d417699f2 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -45,6 +45,11 @@ #define PILL_STYLE_COUNT 22 //Update this if you add more pill icons or you die #define RANDOM_PILL_STYLE 22 //Dont change this one though +//used by chem masters and pill presses +//update this if you add more patch icons +#define PATCH_STYLE_LIST list("bandaid", "bandaid_brute", "bandaid_burn", "bandaid_both") //icon_state list +#define DEFAULT_PATCH_STYLE "bandaid" + //used by chem master #define CONDIMASTER_STYLE_AUTO "auto" #define CONDIMASTER_STYLE_FALLBACK "_" diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index ed89f08798e..7b24cebfdff 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -237,6 +237,15 @@ "pill22" = 'icons/ui_icons/pills/pill22.png', ) +/datum/asset/spritesheet/simple/patches + name = "patches" + assets = list( + "bandaid" = 'icons/ui_icons/patches/bandaid.png', + "bandaid_brute" = 'icons/ui_icons/patches/bandaid_brute.png', + "bandaid_burn" = 'icons/ui_icons/patches/bandaid_burn.png', + "bandaid_both" = 'icons/ui_icons/patches/bandaid_both.png' + ) + /datum/asset/spritesheet/simple/condiments name = "condiments" assets = list( diff --git a/code/modules/plumbing/plumbers/pill_press.dm b/code/modules/plumbing/plumbers/pill_press.dm index 508d901c2d1..dae3f216c70 100644 --- a/code/modules/plumbing/plumbers/pill_press.dm +++ b/code/modules/plumbing/plumbers/pill_press.dm @@ -27,6 +27,10 @@ var/pill_number = RANDOM_PILL_STYLE ///list of id's and icons for the pill selection of the ui var/list/pill_styles + /// Currently selected patch style + var/patch_style = DEFAULT_PATCH_STYLE + /// List of available patch styles for UI + var/list/patch_styles ///list of products stored in the machine, so we dont have 610 pills on one tile var/list/stored_products = list() ///max amount of pills allowed on our tile before we start storing them instead @@ -49,6 +53,14 @@ SL["id"] = x SL["class_name"] = assets.icon_class_name("pill[x]") pill_styles += list(SL) + var/datum/asset/spritesheet/simple/patches_assets = get_asset_datum(/datum/asset/spritesheet/simple/patches) + patch_styles = list() + for (var/raw_patch_style in PATCH_STYLE_LIST) + //adding class_name for use in UI + var/list/patch_style = list() + patch_style["style"] = raw_patch_style + patch_style["class_name"] = patches_assets.icon_class_name(raw_patch_style) + patch_styles += list(patch_style) /obj/machinery/plumbing/pill_press/process() if(machine_stat & NOPOWER) @@ -69,6 +81,7 @@ var/obj/item/reagent_containers/pill/patch/P = new(src) reagents.trans_to(P, current_volume) P.name = trim("[product_name] patch") + P.icon_state = patch_style stored_products += P else if (product == "bottle") var/obj/item/reagent_containers/glass/bottle/P = new(src) @@ -99,6 +112,7 @@ /obj/machinery/plumbing/pill_press/ui_assets(mob/user) return list( get_asset_datum(/datum/asset/spritesheet/simple/pills), + get_asset_datum(/datum/asset/spritesheet/simple/patches), ) /obj/machinery/plumbing/pill_press/ui_interact(mob/user, datum/tgui/ui) @@ -116,6 +130,8 @@ data["product"] = product data["min_volume"] = min_volume data["max_volume"] = max_volume + data["patch_style"] = patch_style + data["patch_styles"] = patch_styles return data /obj/machinery/plumbing/pill_press/ui_act(action, params) @@ -143,3 +159,5 @@ max_volume = max_vial_volume //SKYRAT EDIT HPYOVIALS END current_volume = clamp(current_volume, min_volume, max_volume) + if("change_patch_style") + patch_style = params["patch_style"] diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 0ae0c4c714b..11c6344eecb 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -37,6 +37,10 @@ var/list/pill_styles /// List of available condibottle styles for UI var/list/condi_styles + /// Currently selected patch style + var/patch_style = DEFAULT_PATCH_STYLE + /// List of available patch styles for UI + var/list/patch_styles /obj/machinery/chem_master/Initialize(mapload) create_reagents(100) @@ -50,6 +54,15 @@ SL["className"] = assets.icon_class_name("pill[x]") pill_styles += list(SL) + var/datum/asset/spritesheet/simple/patches_assets = get_asset_datum(/datum/asset/spritesheet/simple/patches) + patch_styles = list() + for (var/raw_patch_style in PATCH_STYLE_LIST) + //adding class_name for use in UI + var/list/patch_style = list() + patch_style["style"] = raw_patch_style + patch_style["class_name"] = patches_assets.icon_class_name(raw_patch_style) + patch_styles += list(patch_style) + condi_styles = strip_condi_styles_to_icons(get_condi_styles()) . = ..() @@ -184,6 +197,7 @@ return list( get_asset_datum(/datum/asset/spritesheet/simple/pills), get_asset_datum(/datum/asset/spritesheet/simple/condiments), + get_asset_datum(/datum/asset/spritesheet/simple/patches), ) /obj/machinery/chem_master/ui_interact(mob/user, datum/tgui/ui) @@ -225,6 +239,8 @@ //Calculated at init time as it never changes data["pillStyles"] = pill_styles data["condiStyles"] = condi_styles + data["patch_style"] = patch_style + data["patch_styles"] = patch_styles return data /obj/machinery/chem_master/ui_act(action, params) @@ -386,6 +402,7 @@ for(var/i in 1 to amount) P = new/obj/item/reagent_containers/pill/patch(drop_location()) P.name = trim("[name] patch") + P.icon_state = patch_style adjust_item_drop_location(P) reagents.trans_to(P, vol_each, transfered_by = usr) return TRUE @@ -447,6 +464,10 @@ screen = params["screen"] return TRUE + if(action == "change_patch_style") + patch_style = params["patch_style"] + return TRUE + return FALSE /obj/machinery/chem_master/adjust_item_drop_location(atom/movable/AM) // Special version for chemmasters and condimasters diff --git a/icons/ui_icons/patches/bandaid.png b/icons/ui_icons/patches/bandaid.png new file mode 100644 index 00000000000..66d2a0217da Binary files /dev/null and b/icons/ui_icons/patches/bandaid.png differ diff --git a/icons/ui_icons/patches/bandaid_both.png b/icons/ui_icons/patches/bandaid_both.png new file mode 100644 index 00000000000..b7639b505b8 Binary files /dev/null and b/icons/ui_icons/patches/bandaid_both.png differ diff --git a/icons/ui_icons/patches/bandaid_brute.png b/icons/ui_icons/patches/bandaid_brute.png new file mode 100644 index 00000000000..7156ea7ca80 Binary files /dev/null and b/icons/ui_icons/patches/bandaid_brute.png differ diff --git a/icons/ui_icons/patches/bandaid_burn.png b/icons/ui_icons/patches/bandaid_burn.png new file mode 100644 index 00000000000..689b5e89cc6 Binary files /dev/null and b/icons/ui_icons/patches/bandaid_burn.png differ diff --git a/tgui/packages/tgui/interfaces/ChemMaster.js b/tgui/packages/tgui/interfaces/ChemMaster.js index 5f8ef027c5e..366338ab65a 100644 --- a/tgui/packages/tgui/interfaces/ChemMaster.js +++ b/tgui/packages/tgui/interfaces/ChemMaster.js @@ -247,6 +247,8 @@ const PackagingControls = (props, context) => { autoCondiStyle, pillStyles = [], condiStyles = [], + patch_style, + patch_styles = [], } = data; const autoCondiStyleChosen = autoCondiStyle === chosenCondiStyle; return ( @@ -279,6 +281,20 @@ const PackagingControls = (props, context) => { volume: 'auto', })} /> )} + {!condi && ( + + {patch_styles.map(patch => ( + + ))} + + )} {!condi && ( { product, min_volume, max_volume, + patch_style, + patch_styles = [], } = data; return ( { ))} )} + {product === "patch" && ( + + {patch_styles.map(patch => ( + + ))} + + )}