From 0f70609936ad594243e6bcc2c08fc2b5e0c43199 Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Mon, 8 Jan 2024 00:45:59 +0100 Subject: [PATCH] Adds Konyanger tea leaves, teapots, and tea cups. (#18145) * Adds Konyanger tea leaves, teapots, and tea cups. * teatray to the glassware * classic * teapot correction * updates --------- Co-authored-by: Matt Atlas --- aurorastation.dme | 1 + code/game/machinery/vending_types.dm | 1 + .../objects/items/weapons/storage/boxes.dm | 33 ++++++++ .../preference_setup/loadout/items/general.dm | 53 +++++++++++++ code/modules/cooking/trays.dm | 12 +++ code/modules/hydroponics/grown.dm | 32 ++++++++ code/modules/hydroponics/seed_datums/herbs.dm | 60 ++++++++++++++ code/modules/hydroponics/seed_storage.dm | 9 ++- .../Chemistry-Reagents-Food-Drinks.dm | 58 ++++++++++++++ code/modules/reagents/Chemistry-Recipes.dm | 21 +++++ .../reagents/reagent_containers/glass.dm | 18 +---- .../glass/newdrinkingglas.dm | 41 ++++++++++ .../reagents/reagent_containers/teapot.dm | 75 ++++++++++++++++++ html/changelogs/mattatlas-teaware.yml | 45 +++++++++++ icons/obj/item/reagent_containers/teaware.dmi | Bin 0 -> 2276 bytes icons/obj/kitchen.dmi | Bin 4722 -> 5025 bytes maps/sccv_horizon/sccv_horizon-2_deck_2.dmm | 24 +++++- maps/sccv_horizon/sccv_horizon-3_deck_3.dmm | 14 ++++ 18 files changed, 479 insertions(+), 18 deletions(-) create mode 100644 code/modules/reagents/reagent_containers/teapot.dm create mode 100644 html/changelogs/mattatlas-teaware.yml create mode 100644 icons/obj/item/reagent_containers/teaware.dmi diff --git a/aurorastation.dme b/aurorastation.dme index 35638a18c3f..be603f98add 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -3148,6 +3148,7 @@ #include "code\modules\reagents\reagent_containers\pill.dm" #include "code\modules\reagents\reagent_containers\spray.dm" #include "code\modules\reagents\reagent_containers\syringes.dm" +#include "code\modules\reagents\reagent_containers\teapot.dm" #include "code\modules\reagents\reagent_containers\tooth_paste.dm" #include "code\modules\reagents\reagent_containers\welding_backpack.dm" #include "code\modules\reagents\reagent_containers\food\cans.dm" diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index 4063cf10820..c9374a3c674 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -1054,6 +1054,7 @@ /obj/item/reagent_containers/glass/rag = 8, /obj/item/evidencebag/plasticbag = 20, /obj/item/tray = 12, + /obj/item/tray/tea = 2, /obj/item/tray/plate = 10, /obj/item/reagent_containers/bowl = 10, /obj/item/reagent_containers/bowl/plate = 10, diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 87ee2bf5c17..f25ff107354 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -1263,3 +1263,36 @@ /obj/item/landmine/claymore = 5, /obj/item/device/assembly/signaler = 6 ) + +/obj/item/storage/box/tea + name = "sencha cha-tin" + desc = "A tin bearing the logo of the Konyang-cha tea company. This one contains a bag of sencha, a type of green tea." + desc_info = "A subsidiary of Gwok Group, the Konyang-cha tea company is the spur's foremost vendor of artisanal loose leaf tea, \ + selling blends sourced from independent Konyanger farmers. Popular both on Konyang and off-world, it is considered a symbol of Konyang's culture." + icon = 'icons/obj/item/reagent_containers/teaware.dmi' + icon_state = "can" + item_state = "can" + contained_sprite = TRUE + max_storage_space = 1 + can_hold = list( + /obj/item/reagent_containers/food/snacks/grown/konyang_tea + ) + starts_with = list( + /obj/item/reagent_containers/food/snacks/grown/konyang_tea = 7 + ) + +/obj/item/storage/box/tea/tieguanyin + name = "tieguanyin cha-tin" + desc = "A tin bearing the logo of the Konyang-cha tea company. This one contains a bag of tieguanyin, a type of oolong tea." + icon_state = "can_tie" + starts_with = list( + /obj/item/reagent_containers/food/snacks/grown/konyang_tea/tieguanyin = 7 + ) + +/obj/item/storage/box/tea/jaekseol + name = "jaekseol cha-tin" + desc = "A tin bearing the logo of the Konyang-cha tea company. This one contains a bag of jaekseol, a type of black tea." + icon_state = "can_jaek" + starts_with = list( + /obj/item/reagent_containers/food/snacks/grown/konyang_tea/jaekseol = 7 + ) diff --git a/code/modules/client/preference_setup/loadout/items/general.dm b/code/modules/client/preference_setup/loadout/items/general.dm index 5a47009eec9..809919549a9 100644 --- a/code/modules/client/preference_setup/loadout/items/general.dm +++ b/code/modules/client/preference_setup/loadout/items/general.dm @@ -125,6 +125,59 @@ if(istype(spawned_cup) && spawned_cup.reagents) spawned_cup.reagents.set_temperature(T0C + 45) +/datum/gear/teacup + display_name = "tea cups" + description = "Tea cups in various designs." + cost = 1 + path = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup/teacup + +/datum/gear/teacup/New() + ..() + var/list/teacups = list() + teacups["plain tea cup"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup/teacup + teacups["clay yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang + teacups["grey yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/grey + teacups["glazed pattern yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/pattern + teacups["manila pattern yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/manila + teacups["nature pattern yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/nature + + gear_tweaks += new /datum/gear_tweak/path(teacups) + gear_tweaks += new /datum/gear_tweak/reagents(lunchables_drink_reagents()) + +/datum/gear/teacup/spawn_item(var/location, var/metadata) + . = ..() + var/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup/teacup/spawned_cup = . + if(istype(spawned_cup) && spawned_cup.reagents) + spawned_cup.reagents.set_temperature(T0C + 45) + +/datum/gear/chatins + display_name = "konyang-cha tins" + description = "Tins of tea leaves made by Konyang-cha." + cost = 1 + path = /obj/item/storage/box/tea + +/datum/gear/chatins/New() + ..() + var/list/chatins = list() + chatins["sencha cha-tin"] = /obj/item/storage/box/tea + chatins["tieguanyin cha-tin"] = /obj/item/storage/box/tea/tieguanyin + chatins["jaekseol cha-tin"] = /obj/item/storage/box/tea/jaekseol + gear_tweaks += new /datum/gear_tweak/path(chatins) + +/datum/gear/teapots + display_name = "teapots" + description = "A selection of teapots." + cost = 1 + path = /obj/item/reagent_containers/glass/beaker/teapot + +/datum/gear/teapots/New() + ..() + var/list/teapots = list() + teapots["teapot"] = /obj/item/reagent_containers/glass/beaker/teapot + teapots["gaiwan"] = /obj/item/reagent_containers/glass/beaker/teapot/lidded + teapots["kyusu"] = /obj/item/reagent_containers/glass/beaker/teapot/lidded/kyusu + gear_tweaks += new /datum/gear_tweak/path(teapots) + /datum/gear/banner display_name = "banner selection" path = /obj/item/flag diff --git a/code/modules/cooking/trays.dm b/code/modules/cooking/trays.dm index b16298c8b6d..cf8c263c4bc 100644 --- a/code/modules/cooking/trays.dm +++ b/code/modules/cooking/trays.dm @@ -219,3 +219,15 @@ matter = list(DEFAULT_TABLE_MATERIAL = 1000) recyclable = TRUE max_carry = 7 // That's 3 dishes, a knife, spoon and fork and a glass + +/obj/item/tray/tea + name = "tea tray" + desc = "A tray for serving tea." + icon_state = "teatray" + force = 3 + throwforce = 3 + atom_flags = 0 + matter = list(DEFAULT_TABLE_MATERIAL = 1000) + recyclable = TRUE + max_carry = 6 + contained_sprite = TRUE diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 02e0563ce84..2fee75dfcc7 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -367,3 +367,35 @@ var/list/fruit_icon_cache = list() I.color = flesh_colour fruit_icon_cache["slice-[rind_colour]"] = I add_overlay(fruit_icon_cache["slice-[rind_colour]"]) + +/obj/item/reagent_containers/food/snacks/grown/konyang_tea + name = "sencha leaves" + desc = "A type of green tea originating from Japan on Earth, sencha is unique in that it is steamed instead of pan-roasted like most teas. \ + It has a fresh flavor profile as a result, with flavors like seaweed, grass, or spinach greens predominant. On Konyang, it is most popular in Aoyama." + plantname = "sencha" + icon = 'icons/obj/item/reagent_containers/teaware.dmi' + icon_state = "sencha" + +/obj/item/reagent_containers/food/snacks/grown/konyang_tea/afterattack(atom/target, mob/user, proximity, params) + if(proximity && target.is_open_container() && target.reagents) + if(!target.reagents.total_volume) + to_chat(user, SPAN_WARNING("You can't steep tea inside of an empty pot!")) + return + to_chat(user, SPAN_NOTICE("You steep \the [src] inside \the [target].")) + + reagents.trans_to(target, reagents.total_volume) + qdel(src) + +/obj/item/reagent_containers/food/snacks/grown/konyang_tea/tieguanyin + name = "tieguanyin leaves" + desc = "A type of oolong tea originating from China on Earth. Like most oolongs, its flavor is somewhere between green and black tea. \ + It has a nutty, peppery, and floral flavor profile. On Konyang, it is most popular in Ganzaodeng and New Hong Kong." + plantname = "tieguanyin" + icon_state = "tieguanyin" + +/obj/item/reagent_containers/food/snacks/grown/konyang_tea/jaekseol + name = "jaekseol leaves" + desc = "A type of black tea originating from Korea on Earth. It has a relatively typical flavor for a black tea, with a sweet, toasty flavor. \ + On Konyang, it is most popular in Suwon, although coffee is still a more popular beverage in general." + plantname = "jaekseol" + icon_state = "jaekseol" diff --git a/code/modules/hydroponics/seed_datums/herbs.dm b/code/modules/hydroponics/seed_datums/herbs.dm index b48615c5b3e..7c713497233 100644 --- a/code/modules/hydroponics/seed_datums/herbs.dm +++ b/code/modules/hydroponics/seed_datums/herbs.dm @@ -43,6 +43,66 @@ /obj/item/seeds/teaseed seed_type = "tea" +/datum/seed/sencha + name = "sencha" + seed_name = "sencha leaves" + display_name = "sencha plant" + chems = list(/singleton/reagent/nutriment/teagrounds/sencha = list(4,9)) + +/datum/seed/sencha/setup_traits() + ..() + set_trait(TRAIT_MATURATION,3) + set_trait(TRAIT_PRODUCTION,3) + set_trait(TRAIT_YIELD,3) + set_trait(TRAIT_POTENCY,2) + set_trait(TRAIT_PRODUCT_ICON,"herb") + set_trait(TRAIT_PRODUCT_COLOUR,"#0E1F0E") + set_trait(TRAIT_PLANT_ICON,"herb") + set_trait(TRAIT_IDEAL_LIGHT, 6) + +/obj/item/seeds/sencha + seed_type = "sencha" + +/datum/seed/tieguanyin + name = "tieguanyin" + seed_name = "tieguanyin leaves" + display_name = "tieguanyin plant" + chems = list(/singleton/reagent/nutriment/teagrounds/tieguanyin = list(3,8)) + +/datum/seed/tieguanyin/setup_traits() + ..() + set_trait(TRAIT_MATURATION,3) + set_trait(TRAIT_PRODUCTION,3) + set_trait(TRAIT_YIELD,3) + set_trait(TRAIT_POTENCY,2) + set_trait(TRAIT_PRODUCT_ICON,"herb") + set_trait(TRAIT_PRODUCT_COLOUR,"#5C6447") + set_trait(TRAIT_PLANT_ICON,"herb") + set_trait(TRAIT_IDEAL_LIGHT, 6) + +/obj/item/seeds/tieguanyin + seed_type = "tieguanyin" + +/datum/seed/jaekseol + name = "jaekseol" + seed_name = "jaekseol leaves" + display_name = "jaekseol plant" + chems = list(/singleton/reagent/nutriment/teagrounds/jaekseol = list(4,7)) + +/datum/seed/jaekseol/setup_traits() + ..() + set_trait(TRAIT_MATURATION,3) + set_trait(TRAIT_PRODUCTION,3) + set_trait(TRAIT_YIELD, 2) + set_trait(TRAIT_POTENCY,2) + set_trait(TRAIT_PRODUCT_ICON,"herb") + set_trait(TRAIT_PRODUCT_COLOUR,"#534337") + set_trait(TRAIT_PLANT_ICON,"herb") + set_trait(TRAIT_IDEAL_LIGHT, 6) + +/obj/item/seeds/jaekseol + seed_type = "jaekseol" + /datum/seed/coca name = "coca" seed_name = "coca leaf" diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm index 243367a5a61..b2f1fb2a1da 100644 --- a/code/modules/hydroponics/seed_storage.dm +++ b/code/modules/hydroponics/seed_storage.dm @@ -18,7 +18,7 @@ return FALSE /obj/machinery/seed_storage - name = "Seed storage" + name = "seed storage" desc = "It stores, sorts, and dispenses seeds." icon = 'icons/obj/vending.dmi' icon_state = SEED_NOUN_SEEDS @@ -34,12 +34,12 @@ var/list/scanner = list() // What properties we can view /obj/machinery/seed_storage/random // This is mostly for testing, but I guess admins could spawn it - name = "Random seed storage" + name = "random seed storage" scanner = list("stats", "produce", "soil", "temperature", "light") starting_seeds = list(/obj/item/seeds/random = 50) /obj/machinery/seed_storage/garden - name = "Garden seed storage" + name = "garden seed storage" scanner = list("stats") starting_seeds = list( /obj/item/seeds/aghrasshseed = 3, @@ -72,6 +72,7 @@ /obj/item/seeds/grassseed = 3, /obj/item/seeds/guamiseed = 2, /obj/item/seeds/gukheseed = 3, + /obj/item/seeds/jaekseol = 3, /obj/item/seeds/lemonseed = 3, /obj/item/seeds/limeseed = 3, /obj/item/seeds/mossseed = 2, @@ -98,6 +99,7 @@ /obj/item/seeds/richcoffeeseed = 3, /obj/item/seeds/sarezhiseed = 3, /obj/item/seeds/seaweed = 3, + /obj/item/seeds/ = 3, /obj/item/seeds/serkiflowerseed = 1, /obj/item/seeds/shandseed = 2, /obj/item/seeds/soyaseed = 3, @@ -107,6 +109,7 @@ /obj/item/seeds/sugartree = 2, /obj/item/seeds/sunflowerseed = 3, /obj/item/seeds/teaseed = 3, + /obj/item/seeds/tieguanyin = 3, /obj/item/seeds/tobaccoseed = 3, /obj/item/seeds/tomatoseed = 3, /obj/item/seeds/towermycelium = 3, diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index 8e7f474b016..7d8333d7e57 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -514,6 +514,30 @@ M.adjustToxLoss(1.5 * removed) //Copied from tea. though i feel it should be stronger as its not diluted with water +/singleton/reagent/nutriment/teagrounds/sencha + name = "Sencha Leaves" + description = "A type of green tea originating from Japan on Earth, sencha is unique in that it is steamed instead of pan-roasted like most teas. \ + It has a fresh flavor profile as a result, with flavors like seaweed, grass, or spinach greens predominant. On Konyang, it is most popular in Aoyama." + color = "#0E1F0E" + taste_description = "bitter seaweed and even more bitter grass" + condiment_name = "ground sencha" + +/singleton/reagent/nutriment/teagrounds/tieguanyin + name = "Tieguanyin Leaves" + description = "A type of oolong tea originating from China on Earth. Like most oolongs, its flavor is somewhere between green and black tea. \ + It has a nutty, peppery, and floral flavor profile. On Konyang, it is most popular in Ganzaodeng and New Hong Kong." + color = "#5C6447" + taste_description = "rough floral peppercorns" + condiment_name = "ground tieguanyin" + +/singleton/reagent/nutriment/teagrounds/jaekseol + name = "jaekseol Leaves" + description = "A type of black tea originating from Korea on Earth. It has a relatively typical flavor for a black tea, with a sweet, toasty flavor. \ + On Konyang, it is most popular in Suwon, although coffee is still a more popular beverage in general." + color = "#534337" + taste_description = "harsh burnt toast" + condiment_name = "ground jaekseol" + /singleton/reagent/nutriment/cocagrounds name = "Coca Grounds" description = "Enjoy the great taste of tea." @@ -1460,6 +1484,40 @@ metabolism = REM * 0.33 M.adjustToxLoss(1.5 * removed) +/singleton/reagent/drink/tea/sencha + name = "Sencha" + description = "A type of green tea originating from Japan on Earth, sencha is unique in that it is steamed instead of pan-roasted like most teas. \ + It has a fresh flavor profile as a result, with flavors like seaweed, grass, or spinach greens predominant. \ + On Konyang, it is most popular in Aoyama." + taste_description = "seaweed and bitter grass" + glass_name = "cup of sencha" + glass_desc = "A type of green tea originating from Japan on Earth, sencha is unique in that it is steamed instead of pan-roasted like most teas. \ + It has a fresh flavor profile as a result, with flavors like seaweed, grass, or spinach greens predominant. \ + On Konyang, it is most popular in Aoyama." + color = "#0E1F0E" + +/singleton/reagent/drink/tea/tieguanyin + name = "Tieguanyin" + description = "A type of oolong tea originating from China on Earth. Like most oolongs, its flavor is somewhere between green and black tea. \ + It has a nutty, peppery, and floral flavor profile. \ + On Konyang, it is most popular in Ganzaodeng and New Hong Kong." + taste_description = "floral peppercorns" + glass_name = "cup of tieguanyin" + glass_desc = "A type of oolong tea originating from China on Earth. Like most oolongs, its flavor is somewhere between green and black tea. \ + It has a nutty, peppery, and floral flavor profile. \ + On Konyang, it is most popular in Ganzaodeng and New Hong Kong." + color = "#5C6447" + +/singleton/reagent/drink/tea/jaekseol + name = "jaekseol" + description = "A type of black tea originating from Korea on Earth. It has a relatively typical flavor for a black tea, with a sweet, toasty flavor. \ + On Konyang, it is most popular in Suwon, although coffee is still a more popular beverage in general." + taste_description = "sweet burnt toast" + glass_name = "cup of jaekseol" + glass_desc = "A type of black tea originating from Korea on Earth. It has a relatively typical flavor for a black tea, with a sweet, toasty flavor. \ + On Konyang, it is most popular in Suwon, although coffee is still a more popular beverage in general." + color = "#534337" + /singleton/reagent/drink/icetea name = "Iced Tea" description = "No relation to a certain rap artist/ actor." diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 8b3ebfb948b..f71bd534878 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -2007,6 +2007,27 @@ required_reagents = list(/singleton/reagent/nutriment/teagrounds = 1, /singleton/reagent/water = 5) result_amount = 5 +/datum/chemical_reaction/drink/sencha + name = "Sencha" + id = "sencha" + result = /singleton/reagent/drink/tea/sencha + required_reagents = list(/singleton/reagent/nutriment/teagrounds/sencha = 1, /singleton/reagent/water = 5) + result_amount = 5 + +/datum/chemical_reaction/drink/tieguanyin + name = "Tieguanyin" + id = "tieguanyin" + result = /singleton/reagent/drink/tea/tieguanyin + required_reagents = list(/singleton/reagent/nutriment/teagrounds/tieguanyin = 1, /singleton/reagent/water = 5) + result_amount = 5 + +/datum/chemical_reaction/drink/jaekseol + name = "jaekseol" + id = "jaekseol" + result = /singleton/reagent/drink/tea/jaekseol + required_reagents = list(/singleton/reagent/nutriment/teagrounds/jaekseol = 1, /singleton/reagent/water = 5) + result_amount = 5 + /datum/chemical_reaction/drink/cocatea name = "Mate de Coca" id = "cocatea" diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 6cbd8df4a18..962f78a0ddf 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -60,13 +60,13 @@ return additional_evidence -/obj/item/reagent_containers/glass/attack_self() +/obj/item/reagent_containers/glass/attack_self(mob/user) ..() if(is_open_container()) - to_chat(usr, "You put the lid on \the [src].") + to_chat(user, "You put the lid on \the [src].") atom_flags ^= ATOM_FLAG_OPEN_CONTAINER else - to_chat(usr, "You take the lid off \the [src].") + to_chat(user, "You take the lid off \the [src].") atom_flags |= ATOM_FLAG_OPEN_CONTAINER update_icon() @@ -213,15 +213,6 @@ /obj/item/reagent_containers/glass/beaker/sulphuric/reagents_to_add = list(/singleton/reagent/acid = 60) -/obj/item/reagent_containers/glass/beaker/teapot - name = "teapot" - desc = "An elegant teapot. It simply oozes class." - icon_state = "teapot" - item_state = "teapot" - unacidable = TRUE - amount_per_transfer_from_this = 10 - volume = 120 - /obj/item/reagent_containers/glass/beaker/pitcher name = "pitcher" desc = "Everyone's best friend in the morning." @@ -294,8 +285,8 @@ to_chat(user, "You drink heavily from \the [src].") /obj/item/reagent_containers/glass/bucket/wood - desc = "An old wooden bucket." name = "wooden bucket" + desc = "An old wooden bucket." icon = 'icons/obj/janitor.dmi' icon_state = "woodbucket" item_state = "woodbucket" @@ -309,5 +300,4 @@ if(isprox(D)) to_chat(user, "This wooden bucket doesn't play well with electronics.") return - ..() diff --git a/code/modules/reagents/reagent_containers/glass/newdrinkingglas.dm b/code/modules/reagents/reagent_containers/glass/newdrinkingglas.dm index 0ed903ef425..631bb9f7261 100644 --- a/code/modules/reagents/reagent_containers/glass/newdrinkingglas.dm +++ b/code/modules/reagents/reagent_containers/glass/newdrinkingglas.dm @@ -129,3 +129,44 @@ icon_state = "goblet" icon = 'icons/obj/drink_glasses/goblet.dmi' volume = 25 + +/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang + name = "yunomi" + desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \ + This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \ + This one is unglazed and the plain brownish-gray of the clay most often used on Konyang." + icon = 'icons/obj/item/reagent_containers/teaware.dmi' + icon_state = "yunomi" + item_state = "yunomi" + contained_sprite = TRUE + +/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/update_icon() + if(reagents?.total_volume) + var/mutable_appearance/filling = mutable_appearance(icon, "yunomi-[get_filling_state()]") + filling.color = reagents.get_color() + add_overlay(filling) + +/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/grey + desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \ + This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \ + This one is unglazed and a plain stone grey color." + icon_state = "yunomi-grey" + +/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/pattern + desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \ + This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \ + This one is glazed and has a simple abstract pattern." + icon_state = "yunomi-pattern" + +/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/manila + desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \ + This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \ + This one is glazed and a plain manila color." + icon_state = "yunomi-manila" + +/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/nature + desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \ + This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \ + This one is glazed and depicts a nature scene, showing trees native to Konyang." + icon_state = "yunomi-nature" + diff --git a/code/modules/reagents/reagent_containers/teapot.dm b/code/modules/reagents/reagent_containers/teapot.dm new file mode 100644 index 00000000000..acb238c0b63 --- /dev/null +++ b/code/modules/reagents/reagent_containers/teapot.dm @@ -0,0 +1,75 @@ +/obj/item/reagent_containers/glass/beaker/teapot + name = "teapot" + desc = "An elegant teapot. It simply oozes class." + icon_state = "teapot" + item_state = "teapot" + unacidable = TRUE + amount_per_transfer_from_this = 10 + volume = 120 + +/obj/item/reagent_containers/glass/beaker/teapot/lidded + name = "gaiwan" + desc = "A lidded ceramic bowl of Chinese origin. Used to infuse a large amount of tea into a small amount of water. \ + To pour, the lid is pinched down into the bowl with a small gap left open for the tea. Traditionally used across the Alliance." + icon = 'icons/obj/item/reagent_containers/teaware.dmi' + icon_state = "gaiwan" + item_state = "gaiwan" + contained_sprite = TRUE + drop_sound = 'sound/items/drop/bottle.ogg' + pickup_sound = 'sound/items/pickup/bottle.ogg' + volume = 60 + fragile = 0 + var/lid_type = /obj/item/teapot_lid + var/obj/item/teapot_lid/lid + +/obj/item/reagent_containers/glass/beaker/teapot/lidded/Initialize() + . = ..() + lid = new lid_type() + update_icon() + +/obj/item/reagent_containers/glass/beaker/teapot/lidded/update_icon() + if(lid) + icon_state = initial(icon_state) + "_lid" + cut_overlays() + else + ..() + icon_state = initial(icon_state) + +/obj/item/reagent_containers/glass/beaker/teapot/lidded/attackby(obj/item/W, mob/user) + . = ..() + if(istype(W, lid_type) && !lid) + user.drop_from_inventory(W, src) + lid = W + to_chat(user, SPAN_NOTICE("You slide the lid onto \the [src].")) + update_icon() + return TRUE + +/obj/item/reagent_containers/glass/beaker/teapot/lidded/attack_self(mob/user) + if(lid) + if(user.put_in_hands(lid)) + lid = null + to_chat(user, SPAN_NOTICE("You slide off \the [src]'s lid.")) + update_icon() + return TRUE + +/obj/item/reagent_containers/glass/beaker/teapot/lidded/is_open_container() + return lid ? FALSE : TRUE + +/obj/item/reagent_containers/glass/beaker/teapot/lidded/kyusu + name = "kyusu" + desc = "A ceramic yokode kyusu - or side-handle teapot. This sort of teapot is popular on Konyang, owing to the Japanese origins of some of its population. \ + To pour, one grasps the handle while holding the lid down with the index finger." + icon_state = "kyusu" + item_state = "kyusu" + lid_type = /obj/item/teapot_lid/kyusu + +/obj/item/teapot_lid + name = "gaiwan lid" + desc = "A lid for a gaiwan." + icon = 'icons/obj/item/reagent_containers/teaware.dmi' + icon_state = "gaiwan-lid" + +/obj/item/teapot_lid/kyusu + name = "kyusu lid" + desc = "A lid for a yokode kyusu." + icon_state = "kyusu-lid" diff --git a/html/changelogs/mattatlas-teaware.yml b/html/changelogs/mattatlas-teaware.yml new file mode 100644 index 00000000000..239c3107447 --- /dev/null +++ b/html/changelogs/mattatlas-teaware.yml @@ -0,0 +1,45 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas (Code), Atteria (Sprites) + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added Konyang teapots with removable lids to the loadout." + - rscadd: "Added Konyang teacups to the loadout." + - rscadd: "Added sencha, tieguanyin and jaekseol leaves, along with the relevant seeds and reagents. These leaves can also be gotten from Konyang-cha tins in the loadout." + - rscadd: "Added Konyang-cha tea tins to the bar backroom and the Command break room." + - rscadd: "Added tea trays to the Dinnerware vending machines." diff --git a/icons/obj/item/reagent_containers/teaware.dmi b/icons/obj/item/reagent_containers/teaware.dmi new file mode 100644 index 0000000000000000000000000000000000000000..6dfb23f5f96c0a91effb3ec2f910ce1d6a1594b3 GIT binary patch literal 2276 zcmYk6c{~%0AIEnfIpzX&Z+iUw+}JBMxJF#L<&9sd?-Q>;=u9gcu__k@}c*T*nBZJinU%H-EvSA$5=!B)bpUbO3KaN)GdmFoRm z+RA$0`cs}GHw|h9f*ewX1xQ$BR+?GaTxHtoxjQDE8+VSS4SJ>CRpE21k|vwnbOUJz z9G)#yg3RJjCs3eXaf=f;W7oz~G)Iv^)@Zl9Yv&iQ=q$bdvf{xi(M7xH1EK-DYq|t7 zEoIAYL4Wtxzp!dm<-_j>)jYE2l;*S%e`%!JutbzzyC~fUnz}f&+gkkark@#)!XS+hG8W z)J&?Ek61omlDBttnS29y5EOLi?WnclDv^qv2;3W#fF4@@Sm45cY#x8?GtfDuM_d~x zmW)~B%W+)XChzPqk==7Z3Oz)PCwp}Q^h9!?1Y)+wKT8+Xwj9vSEb}Q6>=!Q(oXlv- zw3^n_R?X&5p(Imz({_@Wu~XOoasWhpS~y!5{K9_`9wuFGXr43|)11T}=lfy7&)gx} zCDm{rZ6G-wJB4eyPh+yNDK$hZkCl0SUCkY=F&xrT-Va|6(y(9~KIjbIo=DFLpx0Q6 zYqD!hWRxD-KB>KmLX6aBmox{8e;zipw|k%?nG0GKtZ4tzxgAq?Lb-J&JFyy9#(wDx zKOE*cqA-LrJvHLAL06LE8>NLjRy!yI|yL?uH2c(au4g zpz*n-=cAqP4TIiw4NWQMKl&OiDDle$rD;){G240t(wrE2Z^Y z$3E3cz%!$r!P*r1ykV*hA=Jm)hA%EeM3|U-p)*ukR<1lHu*P%tVs_Qhuj!1y3*fE( z^b3l73*fw>&2hyo4tTmNNB;J?r79Pw0+&i-Sw^8VeFpKlpSDHIC0s@+aE9Fb z^q{YCEYT=W-rVt$G#y+FFj!A+62kMNn%fa&(n3ytdictWhNoseALWM24A!q`{D0~1 zBsz8Bx3-_mz}FnP>syB>dnV$VTejCWJ}^0{4YjriYA3DjI)#F0Y%snbE_(hVgOJlL zdlIt{9!vLJ`CISZ3`VmVRetSD$lWrH;2usMZ}}@0QgC}u{U*;ZV~W9GvrN&$8c6vi z+G4ZN>)ak!2Om8pN#1kyU!!CH5eVlLfn45aslk(tX4aOU-(CKr!{<~>%Ux?7U>NQ+ zaGmv4;N)*#AXhUaDPCjZE>3V{>pbh5y3TE7qu7|RQBIeu~gH%nSnf;nY?D@6R?`({9&@T^6)aOI<+wjq`z$kRjJ(0iIPuE@3e|OCnIXy9Hp?Ojf2@|U7>6;nC2u=6r+u2#!5QQFg z5Lxj^7+ymCTCbS@otAOmf|py&T;-09jrIX|(sAa?4pn06sh&@f`2PI9#}EBV&$NP@ z1>aCgkDvftJ|8d#qx-gnNPgVWs6us^jv1;QlY;`C!31p>r^&qwXRIUgi!pi#FC*qb z^CxOKvGD|tw&0^x6HOsDS83g0QN2fB)L0NdlFK_1tw2>x4?y>157&+Gs=f7t73gn& zrb`pBxH}*QJ#Hs-LWvit3)>ta@TeY3SPpQ@lRwWbxv9d7RW}PNKH#&Tj8#uPJ?scI zlej(d&i-cJe8AJu4IBHT1Hl7lOoI$7jV5?LSf?ur-{MiV%-Q*ZtCSk%V!e!+)G U>_>b_>fbNMplr=+%zRS+3pST0WdHyG literal 0 HcmV?d00001 diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index 4973f956e42ba5e6a4ad478607cf844e4df98313..858a567c0a50cf4baf52e51abc9a8bfb49d1a687 100644 GIT binary patch delta 4713 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