From ed2487f2011c0cad898189f00eb67cb30c27dd33 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Mon, 14 Dec 2020 02:01:55 +0100 Subject: [PATCH] [MIRROR] [READY] Kitchen Rework part 1: I just want to griddle! (#2173) * [READY] Kitchen Rework part 1: I just want to griddle! (#55319) This PR essentialy moves away from the extremely microwave dependent cooking we have for meat right now, and making it a bit more sensical by making you use a grill to grill meat. The grill takes a different time (with variation) for different grilled things. Once finished it will turn that food into something else. Yes, this does mean creating burgers takes longer, but in return you can make more patties at once, and you are not required to stay at the grill while its going. This lets you cook as much as you want at once, just make sure your meat doesn't burn! In the future, I hope to move more things like this to machines similar to this (Pasta boiling, putting eggs on the griddle, soup making, etcetera) to create for a more interesting cooking experience. * [READY] Kitchen Rework part 1: I just want to griddle! Co-authored-by: Qustinnus --- .../map_files/Deltastation/DeltaStation2.dmm | 13 +- .../map_files/IceBoxStation/IceBoxStation.dmm | 17 +- _maps/map_files/KiloStation/KiloStation.dmm | 15 +- _maps/map_files/MetaStation/MetaStation.dmm | 4 +- code/__DEFINES/dcs/signals.dm | 6 + code/__DEFINES/flags.dm | 5 +- code/_onclick/click.dm | 2 +- code/datums/components/grillable.dm | 91 ++++++ .../datums/looping_sounds/machinery_sounds.dm | 8 + code/game/atoms.dm | 2 + .../circuitboards/machine_circuitboards.dm | 7 +- code/game/objects/items/food/_food.dm | 9 + code/game/objects/items/food/meat.dm | 258 ++++++++++++++++-- code/game/objects/items/food/misc.dm | 8 + .../kitchen_machinery/griddle.dm | 99 +++++++ .../kitchen_machinery/grill.dm | 8 + .../recipes/processor_recipes.dm | 44 ++- .../recipes/tablecraft/recipes_burger.dm | 40 +-- .../recipes/tablecraft/recipes_meat.dm | 2 +- .../research/designs/machine_designs.dm | 8 + code/modules/research/techweb/all_nodes.dm | 2 +- icons/effects/steam.dmi | Bin 0 -> 1041 bytes icons/obj/food/food.dmi | Bin 78989 -> 80526 bytes icons/obj/machines/griddle.dmi | Bin 0 -> 609 bytes sound/machines/grill/grillsizzle.ogg | Bin 0 -> 30763 bytes tgstation.dme | 2 + 26 files changed, 565 insertions(+), 85 deletions(-) create mode 100644 code/datums/components/grillable.dm create mode 100644 code/modules/food_and_drinks/kitchen_machinery/griddle.dm create mode 100644 icons/effects/steam.dmi create mode 100644 icons/obj/machines/griddle.dmi create mode 100644 sound/machines/grill/grillsizzle.ogg diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index ee229792502..50fc94840e9 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -27275,12 +27275,14 @@ /obj/structure/table/reinforced, /obj/item/reagent_containers/glass/bowl, /obj/effect/turf_decal/bot, +/obj/item/food/dough, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "bgu" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/condiment/flour, /obj/effect/turf_decal/bot, +/obj/item/book/manual/wiki/cooking_to_serve_man, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "bgv" = ( @@ -28121,16 +28123,9 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) -"bhQ" = ( -/obj/structure/table/reinforced, -/obj/item/food/dough, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) "bhR" = ( -/obj/structure/table/reinforced, -/obj/item/book/manual/wiki/cooking_to_serve_man, /obj/effect/turf_decal/bot, +/obj/machinery/griddle, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "bhS" = ( @@ -152048,7 +152043,7 @@ qkz bdJ bfe bgs -bhQ +bhR aCB bly aYD diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index d82c7047539..9d16003ef88 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -18980,6 +18980,11 @@ pixel_x = -5; pixel_y = 30 }, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aRz" = ( @@ -19018,25 +19023,17 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aRF" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, +/obj/machinery/griddle, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aRG" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, /obj/machinery/airalarm{ pixel_y = 24 }, /obj/machinery/light{ dir = 1 }, +/obj/machinery/griddle, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "aRH" = ( diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 69775f0a7fb..745eda1af6e 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -41149,6 +41149,12 @@ dir = 4 }, /obj/item/storage/bag/tray, +/obj/item/book/manual/chef_recipes{ + pixel_y = 2 + }, +/obj/item/book/manual/chef_recipes{ + pixel_y = 2 + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/kitchen) "bmU" = ( @@ -42168,7 +42174,6 @@ /turf/closed/wall, /area/hallway/primary/port) "boD" = ( -/obj/structure/table, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -42176,13 +42181,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/book/manual/chef_recipes{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/book/manual/chef_recipes{ - pixel_y = 2 - }, +/obj/machinery/griddle, /turf/open/floor/plasteel/dark, /area/crew_quarters/kitchen) "boE" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index a1a8da86d99..6be05b6ec73 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -36050,6 +36050,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/item/kitchen/rollingpin, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -78261,11 +78262,10 @@ /turf/open/floor/plasteel/white, /area/medical/sleeper) "wfI" = ( -/obj/structure/table, -/obj/item/kitchen/rollingpin, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/griddle, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index d1d861e6df2..eed39a5acb4 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -557,6 +557,12 @@ #define COMPONENT_BLOCK_SHARPEN_BLOCKED (1<<1) #define COMPONENT_BLOCK_SHARPEN_ALREADY (1<<2) #define COMPONENT_BLOCK_SHARPEN_MAXED (1<<3) +///Called when an object is grilled ontop of a griddle +#define COMSIG_ITEM_GRILLED "item_griddled" + #define COMPONENT_HANDLED_GRILLING (1<<0) +///Called when an object is turned into another item through grilling ontop of a griddle +#define COMSIG_GRILL_COMPLETED "item_grill_completed" + ///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user) #define COMSIG_TOOL_IN_USE "tool_in_use" ///from base of [/obj/item/proc/tool_start_check]: (mob/living/user) diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index a3643032a0a..724532d91d9 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -48,8 +48,9 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define UNPAINTABLE_1 (1 << 20) /// Is the thing currently spinning? #define IS_SPINNING_1 (1 << 21) -/// Does the supermatter skip over this atom? -#define SUPERMATTER_IGNORES_1 (1 << 22) +#define IS_ONTOP_1 (1 << 22) +#define SUPERMATTER_IGNORES_1 (1 << 23) + /// If the thing can reflect light (lasers/energy) #define RICOCHET_SHINY (1<<0) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 72192409e0d..e44cc49ef52 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -197,7 +197,7 @@ if(closed[target] || isarea(target)) // avoid infinity situations continue closed[target] = TRUE - if(isturf(target) || isturf(target.loc) || (target in direct_access)) //Directly accessible atoms + if(isturf(target) || isturf(target.loc) || (target in direct_access) || (isobj(target) && target.flags_1 & IS_ONTOP_1)) //Directly accessible atoms if(Adjacent(target) || (tool && CheckToolReach(src, target, tool.reach))) //Adjacent or reaching attacks return TRUE diff --git a/code/datums/components/grillable.dm b/code/datums/components/grillable.dm new file mode 100644 index 00000000000..859b25dff27 --- /dev/null +++ b/code/datums/components/grillable.dm @@ -0,0 +1,91 @@ +/datum/component/grillable + ///Result atom type of grilling this object + var/atom/cook_result + ///Amount of time required to cook the food + var/required_cook_time = 2 MINUTES + ///Is this a positive grill result? + var/positive_result = TRUE + + ///Time spent cooking so far + var/current_cook_time = 0 + + ///Are we currently grilling? + var/currently_grilling = FALSE + + ///Do we use the large steam sprite? + var/use_large_steam_sprite = FALSE + +/datum/component/grillable/Initialize(cook_result, required_cook_time, positive_result, use_large_steam_sprite) + . = ..() + if(!isitem(parent)) //Only items support grilling at the moment + return COMPONENT_INCOMPATIBLE + + src.cook_result = cook_result + src.required_cook_time = required_cook_time + src.positive_result = positive_result + src.use_large_steam_sprite = use_large_steam_sprite + + RegisterSignal(parent, COMSIG_ITEM_GRILLED, .proc/OnGrill) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/OnExamine) + +///Ran every time an item is grilled by something +/datum/component/grillable/proc/OnGrill(datum/source, atom/used_grill, delta_time = 1) + SIGNAL_HANDLER + + . = COMPONENT_HANDLED_GRILLING + + current_cook_time += delta_time * 10 //turn it into ds + if(current_cook_time >= required_cook_time) + FinishGrilling(used_grill) + else if(!currently_grilling) //We havn't started grilling yet + StartGrilling(used_grill) + + +///Ran when an object starts grilling on something +/datum/component/grillable/proc/StartGrilling(atom/grill_source) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/OnMoved) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/AddGrilledItemOverlay) + + var/atom/A = parent + A.update_icon() + +///Ran when an object finished grilling +/datum/component/grillable/proc/FinishGrilling(atom/grill_source) + + var/atom/original_object = parent + var/atom/grilled_result = new cook_result(original_object.loc) + + grilled_result.pixel_x = original_object.pixel_x + grilled_result.pixel_y = original_object.pixel_y + + grill_source.visible_message("[parent] turns into \a [grilled_result]!") + SEND_SIGNAL(parent, COMSIG_GRILL_COMPLETED, grilled_result) + currently_grilling = FALSE + qdel(parent) + +///Ran when an object almost finishes grilling +/datum/component/grillable/proc/OnExamine(atom/A, mob/user, list/examine_list) + SIGNAL_HANDLER + if(!current_cook_time) //Not grilled yet + return + + if(positive_result) + if(current_cook_time <= required_cook_time * 0.75) + examine_list += "[parent] probably needs to be cooked a bit longer!" + else if(current_cook_time <= required_cook_time) + examine_list += "[parent] seems to be almost finished cooking!" + else + examine_list += "[parent] should probably not be cooked for much longer!" + +///Ran when an object moves from the grill +/datum/component/grillable/proc/OnMoved(atom/A, atom/OldLoc, Dir, Forced) + SIGNAL_HANDLER + currently_grilling = FALSE + UnregisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS) + UnregisterSignal(parent, COMSIG_MOVABLE_MOVED) + A.update_icon() + +/datum/component/grillable/proc/AddGrilledItemOverlay(datum/source, list/overlays) + SIGNAL_HANDLER + + overlays += mutable_appearance('icons/effects/steam.dmi', "[use_large_steam_sprite ? "steam_triple" : "steam_single"]", ABOVE_OBJ_LAYER) diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 2785510975e..bee434eef18 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -58,7 +58,15 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /datum/looping_sound/grill + mid_sounds = list('sound/machines/grill/grillsizzle.ogg' = 1) + mid_length = 18 + volume = 50 + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/deep_fryer mid_length = 2 mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1) volume = 30 diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e5fe41512dd..2d5c902d390 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1295,6 +1295,8 @@ var/list/atom/created_atoms = list() for(var/i = 1 to chosen_option[TOOL_PROCESSING_AMOUNT]) var/atom/created_atom = new atom_to_create(drop_location()) + created_atom.pixel_x = rand(-8, 8) + created_atom.pixel_y = rand(-8, 8) SEND_SIGNAL(created_atom, COMSIG_ATOM_CREATEDBY_PROCESSING, src, chosen_option) created_atom.OnCreatedFromProcessing(user, I, chosen_option, src) to_chat(user, "You manage to create [chosen_option[TOOL_PROCESSING_AMOUNT]] [initial(atom_to_create.name)]\s from [src].") diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 922598bf3cd..1a88a9f6681 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -990,7 +990,12 @@ build_path = /obj/machinery/deepfryer req_components = list(/obj/item/stock_parts/micro_laser = 1) needs_anchored = FALSE - +/obj/item/circuitboard/machine/griddle + name = "circuit board (Griddle)" + icon_state = "service" + build_path = /obj/machinery/griddle + req_components = list(/obj/item/stock_parts/micro_laser = 1) + needs_anchored = FALSE /obj/item/circuitboard/machine/dish_drive name = "Dish Drive (Machine Board)" diff --git a/code/game/objects/items/food/_food.dm b/code/game/objects/items/food/_food.dm index 7cbea93fe34..77e0fe141a6 100644 --- a/code/game/objects/items/food/_food.dm +++ b/code/game/objects/items/food/_food.dm @@ -32,6 +32,8 @@ var/trash_type ///How much junkiness this food has? God I should remove junkiness soon var/junkiness + ///Will this food turn into badrecipe on a grill? Don't use this for everything; preferably mostly for food that is made on a grill to begin with so it burns after some time + var/burns_on_grill = FALSE /obj/item/food/Initialize() . = ..() @@ -44,6 +46,7 @@ MakeEdible() MakeProcessable() MakeLeaveTrash() + MakeGrillable() ///This proc adds the edible component, overwrite this if you for some reason want to change some specific args like callbacks. /obj/item/food/proc/MakeEdible() @@ -64,6 +67,12 @@ /obj/item/food/proc/MakeProcessable() return +///This proc handles grillable components, overwrite if you want different grill results etc. +/obj/item/food/proc/MakeGrillable() + if(burns_on_grill) + AddComponent(/datum/component/grillable, /obj/item/food/badrecipe, rand(20 SECONDS, 30 SECONDS), FALSE) + return + ///This proc handles trash components, overwrite this if you want the object to spawn trash /obj/item/food/proc/MakeLeaveTrash() if(trash_type) diff --git a/code/game/objects/items/food/meat.dm b/code/game/objects/items/food/meat.dm index 4625903b40b..d4c15820591 100644 --- a/code/game/objects/items/food/meat.dm +++ b/code/game/objects/items/food/meat.dm @@ -83,11 +83,13 @@ desc = "A still twitching leg of a giant spider... you don't really want to eat this, do you?" icon_state = "spiderleg" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/toxin = 2) - microwaved_type = /obj/item/food/boiledspiderleg tastes = list("cobwebs" = 1) foodtypes = MEAT | TOXIC w_class = WEIGHT_CLASS_SMALL +/obj/item/food/spiderleg/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/boiledspiderleg, rand(50 SECONDS, 60 SECONDS), TRUE, TRUE) + /obj/item/food/cornedbeef name = "corned beef and cabbage" desc = "Now you can feel like a real tourist vacationing in Ireland." @@ -108,28 +110,177 @@ foodtypes = MEAT | ALCOHOL w_class = WEIGHT_CLASS_SMALL +/obj/item/food/raw_meatball + name = "raw meatball" + desc = "A great meal all round. Not a cord of wood. Kinda raw" + icon_state = "raw_meatball" + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2) + tastes = list("meat" = 1) + foodtypes = MEAT | RAW + w_class = WEIGHT_CLASS_SMALL + var/meatball_type = /obj/item/food/meatball + var/patty_type = /obj/item/food/raw_patty + +/obj/item/food/raw_meatball/MakeGrillable() + AddComponent(/datum/component/grillable, meatball_type, rand(30 SECONDS, 40 SECONDS), TRUE) + +/obj/item/food/raw_meatball/MakeProcessable() + AddElement(/datum/element/processable, TOOL_ROLLINGPIN, patty_type, 1, 20) +/obj/item/food/raw_meatball/human + name = "strange raw meatball" + meatball_type = /obj/item/food/meatball/human + patty_type = /obj/item/food/raw_patty/human + +/obj/item/food/raw_meatball/corgi + name = "raw corgi meatball" + meatball_type = /obj/item/food/meatball/corgi + patty_type = /obj/item/food/raw_patty/corgi + +/obj/item/food/raw_meatball/xeno + name = "raw xeno meatball" + meatball_type = /obj/item/food/meatball/xeno + patty_type = /obj/item/food/raw_patty/xeno + +/obj/item/food/raw_meatball/bear + name = "raw bear meatball" + meatball_type = /obj/item/food/meatball/bear + patty_type = /obj/item/food/raw_patty/bear + +/obj/item/food/raw_meatball/chicken + name = "raw chicken meatball" + meatball_type = /obj/item/food/meatball/chicken + patty_type = /obj/item/food/raw_patty/chicken + /obj/item/food/meatball name = "meatball" desc = "A great meal all round. Not a cord of wood." icon_state = "meatball" - food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/nutriment/vitamin = 1) + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2) tastes = list("meat" = 1) foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL + burns_on_grill = TRUE + +/obj/item/food/meatball/human + name = "strange meatball" + +/obj/item/food/meatball/corgi + name = "corgi meatball" + +/obj/item/food/meatball/bear + name = "bear meatball" + tastes = list("meat" = 1, "salmon" = 1) + +/obj/item/food/meatball/xeno + name = "xenomorph meatball" + tastes = list("meat" = 1, "acid" = 1) + +/obj/item/food/meatball/chicken + name = "chicken meatball" + tastes = list("chicken" = 1) + icon_state = "chicken_meatball" + +/obj/item/food/raw_patty + name = "raw patty" + desc = "I'm.....NOT REAAADDYY." + icon_state = "raw_patty" + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2) + tastes = list("meat" = 1) + foodtypes = MEAT | RAW + w_class = WEIGHT_CLASS_SMALL + var/patty_type = /obj/item/food/patty/plain + +/obj/item/food/raw_patty/MakeGrillable() + AddComponent(/datum/component/grillable, patty_type, rand(30 SECONDS, 40 SECONDS), TRUE) + +/obj/item/food/raw_patty/human + name = "strange raw patty" + patty_type = /obj/item/food/patty/human + +/obj/item/food/raw_patty/corgi + name = "raw corgi patty" + patty_type = /obj/item/food/patty/corgi + +/obj/item/food/raw_patty/bear + name = "raw bear patty" + tastes = list("meat" = 1, "salmon" = 1) + patty_type = /obj/item/food/patty/bear + +/obj/item/food/raw_patty/xeno + name = "raw xenomorph patty" + tastes = list("meat" = 1, "acid" = 1) + patty_type = /obj/item/food/patty/xeno + +/obj/item/food/raw_patty/chicken + name = "raw chicken patty" + tastes = list("chicken" = 1) + patty_type = /obj/item/food/patty/chicken + +/obj/item/food/patty + name = "patty" + desc = "The nanotrasen patty is the patty for you and me!" + icon_state = "patty" + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2) + tastes = list("meat" = 1) + foodtypes = MEAT + w_class = WEIGHT_CLASS_SMALL + burns_on_grill = TRUE + +///Exists purely for the crafting recipe (because itll take subtypes) +/obj/item/food/patty/plain + +/obj/item/food/patty/human + name = "strange patty" + +/obj/item/food/patty/corgi + name = "corgi patty" + +/obj/item/food/patty/bear + name = "bear patty" + tastes = list("meat" = 1, "salmon" = 1) + +/obj/item/food/patty/xeno + name = "xenomorph patty" + tastes = list("meat" = 1, "acid" = 1) + +/obj/item/food/patty/chicken + name = "chicken patty" + tastes = list("chicken" = 1) + icon_state = "chicken_patty" + +/obj/item/food/raw_sausage + name = "raw sausage" + desc = "A piece of mixed, long meat, but then raw" + icon_state = "raw_sausage" + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + tastes = list("meat" = 1) + foodtypes = MEAT | RAW + eatverbs = list("bite","chew","nibble","deep throat","gobble","chomp") + w_class = WEIGHT_CLASS_SMALL + +/obj/item/food/raw_sausage/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/sausage, rand(60 SECONDS, 75 SECONDS), TRUE) /obj/item/food/sausage name = "sausage" desc = "A piece of mixed, long meat." icon_state = "sausage" - food_reagents = list(/datum/reagent/consumable/nutriment/protein = 9, /datum/reagent/consumable/nutriment/vitamin = 2) + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("meat" = 1) foodtypes = MEAT | BREAKFAST eatverbs = list("bite","chew","nibble","deep throat","gobble","chomp") var/roasted = FALSE w_class = WEIGHT_CLASS_SMALL + burns_on_grill = TRUE /obj/item/food/sausage/MakeProcessable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/salami, 6, 30) + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/american_sausage, 1, 30) + +/obj/item/food/american_sausage + name = "american sausage" + desc = "Snip." + icon_state = "american_sausage" /obj/item/food/salami name = "salami" @@ -145,11 +296,13 @@ desc = "One hundred khinkalis? Do I look like a pig?" icon_state = "khinkali" food_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/protein = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/garlic = 1) - microwaved_type = /obj/item/food/khinkali tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL +/obj/item/food/rawkhinkali/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/khinkali, rand(50 SECONDS, 60 SECONDS), TRUE) + /obj/item/food/khinkali name = "khinkali" desc = "One hundred khinkalis? Do I look like a pig?" @@ -159,6 +312,7 @@ tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL + burns_on_grill = TRUE /obj/item/food/monkeycube name = "monkey cube" @@ -246,7 +400,6 @@ /obj/item/food/stewedsoymeat/Initialize() . = ..() - /obj/item/food/boiledspiderleg name = "boiled spider leg" desc = "A giant spider's leg that's still twitching after being cooked. Gross!" @@ -256,6 +409,7 @@ tastes = list("hot peppers" = 1, "cobwebs" = 1) foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL + burns_on_grill = TRUE /obj/item/food/spidereggsham name = "green eggs and ham" @@ -404,7 +558,6 @@ icon_state = "meat" bite_consumption = 3 food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/cooking_oil = 2) //Meat has fats that a food processor can process into cooking oil - microwaved_type = /obj/item/food/meat/steak/plain tastes = list("meat" = 1) foodtypes = MEAT | RAW ///Legacy code, handles the coloring of the overlay of the cutlets made from this. @@ -414,6 +567,9 @@ . = ..() AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy) +/obj/item/food/meat/slab/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? + /obj/item/food/meat/slab/MakeProcessable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain, 3, 30) @@ -421,10 +577,12 @@ /obj/item/food/meat/slab/human name = "meat" - microwaved_type = /obj/item/food/meat/steak/plain/human tastes = list("tender meat" = 1) foodtypes = MEAT | RAW | GROSS +/obj/item/food/meat/slab/human/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? + /obj/item/food/meat/slab/human/MakeProcessable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain/human, 3, 30) @@ -450,10 +608,12 @@ /obj/item/food/meat/slab/human/mutant/lizard icon_state = "lizardmeat" desc = "Delicious dino damage." - microwaved_type = /obj/item/food/meat/steak/plain/human/lizard tastes = list("meat" = 4, "scales" = 1) foodtypes = MEAT | RAW +/obj/item/food/meat/slab/human/mutant/lizard/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human/lizard, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) + /obj/item/food/meat/slab/human/mutant/plant icon_state = "plantmeat" desc = "All the joys of healthy eating with all the fun of cannibalism." @@ -509,18 +669,21 @@ /obj/item/food/meat/slab/synthmeat name = "synthmeat" icon_state = "meat_old" - microwaved_type = /obj/item/food/meat/steak/plain/synth desc = "A synthetic slab of meat." foodtypes = RAW | MEAT //hurr durr chemicals we're harmed in the production of this meat thus its non-vegan. +/obj/item/food/meat/slab/synthmeat/MakeGrillable() + AddComponent(/datum/component/grillable,/obj/item/food/meat/steak/plain/synth, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) /obj/item/food/meat/slab/meatproduct name = "meat product" icon_state = "meatproduct" desc = "A slab of station reclaimed and chemically processed meat product." - microwaved_type = /obj/item/food/meat/steak/meatproduct tastes = list("meat flavoring" = 2, "modified starches" = 2, "natural & artificial dyes" = 1, "butyric acid" = 1) foodtypes = RAW | MEAT +/obj/item/food/meat/slab/meatproduct/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/meatproduct, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) + /obj/item/food/meat/slab/monkey name = "monkey meat" foodtypes = RAW | MEAT @@ -558,10 +721,12 @@ desc = "A slice from a huge tomato." icon_state = "tomatomeat" food_reagents = list(/datum/reagent/consumable/nutriment = 2) - microwaved_type = /obj/item/food/meat/steak/killertomato tastes = list("tomato" = 1) foodtypes = FRUIT +/obj/item/food/meat/slab/killertomato/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/killertomato, rand(70 SECONDS, 85 SECONDS), TRUE, TRUE) + /obj/item/food/meat/slab/killertomato/MakeProcessable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/killertomato, 3, 30) @@ -570,13 +735,15 @@ desc = "A very manly slab of meat." icon_state = "bearmeat" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 16, /datum/reagent/medicine/morphine = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 6) - microwaved_type = /obj/item/food/meat/steak/bear tastes = list("meat" = 1, "salmon" = 1) foodtypes = RAW | MEAT /obj/item/food/meat/slab/bear/MakeProcessable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/bear, 3, 30) +/obj/item/food/meat/slab/bear/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/bear, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE) + /obj/item/food/meat/slab/bear/Initialize() . = ..() AddElement(/datum/element/swabable, CELL_LINE_TABLE_BEAR, CELL_VIRUS_TABLE_GENERIC_MOB) @@ -587,25 +754,29 @@ icon_state = "xenomeat" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 8, /datum/reagent/consumable/nutriment/vitamin = 3) bite_consumption = 4 - microwaved_type = /obj/item/food/meat/steak/xeno tastes = list("meat" = 1, "acid" = 1) foodtypes = RAW | MEAT /obj/item/food/meat/slab/xeno/MakeProcessable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/xeno, 3, 30) +/obj/item/food/meat/slab/xeno/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/xeno, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE) + /obj/item/food/meat/slab/spider name = "spider meat" desc = "A slab of spider meat. That is so Kafkaesque." icon_state = "spidermeat" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/toxin = 3, /datum/reagent/consumable/nutriment/vitamin = 1) - microwaved_type = /obj/item/food/meat/steak/spider tastes = list("cobwebs" = 1) foodtypes = RAW | MEAT | TOXIC /obj/item/food/meat/slab/spider/MakeProcessable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/spider, 3, 30) +/obj/item/food/meat/slab/spider/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/spider, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE) + /obj/item/food/meat/slab/goliath name = "goliath meat" desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava." @@ -637,12 +808,14 @@ name = "raw piece of bacon" desc = "A raw piece of bacon." icon_state = "bacon" - microwaved_type = /obj/item/food/meat/bacon bite_consumption = 2 food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/cooking_oil = 3) tastes = list("bacon" = 1) foodtypes = RAW | MEAT +/obj/item/food/meat/rawbacon/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/bacon, rand(25 SECONDS, 45 SECONDS), TRUE, TRUE) + /obj/item/food/meat/bacon name = "piece of bacon" desc = "A delicious piece of bacon." @@ -656,34 +829,41 @@ desc = "According to legends of old, consuming raw gondola flesh grants one inner peace." food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/tranquility = 5, /datum/reagent/consumable/cooking_oil = 3) tastes = list("meat" = 4, "tranquility" = 1) - microwaved_type = /obj/item/food/meat/steak/gondola foodtypes = RAW | MEAT /obj/item/food/meat/slab/gondola/MakeProcessable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/gondola, 3, 30) +/obj/item/food/meat/slab/gondola/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/gondola, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? + + /obj/item/food/meat/slab/penguin name = "penguin meat" icon_state = "birdmeat" desc = "A slab of penguin meat." food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/cooking_oil = 3) - microwaved_type = /obj/item/food/meat/steak/penguin tastes = list("beef" = 1, "cod fish" = 1) /obj/item/food/meat/slab/gondola/MakeProcessable() . = ..() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/gondola, 3, 30) +/obj/item/food/meat/slab/penguin/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/penguin, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? + /obj/item/food/meat/rawcrab name = "raw crab meat" desc = "A pile of raw crab meat." - icon_state = "crabmeatraw" microwaved_type = /obj/item/food/meat/crab bite_consumption = 3 food_reagents = list(/datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/consumable/cooking_oil = 3) tastes = list("raw crab" = 1) foodtypes = RAW | MEAT +/obj/item/food/meat/slab/rawcrab/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/crab, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? + /obj/item/food/meat/crab name = "crab meat" desc = "Some deliciously cooked crab meat." @@ -691,19 +871,22 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 2) tastes = list("crab" = 1) foodtypes = MEAT + burns_on_grill = TRUE /obj/item/food/meat/slab/chicken name = "chicken meat" icon_state = "birdmeat" desc = "A slab of raw chicken. Remember to wash your hands!" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6) //low fat - microwaved_type = /obj/item/food/meat/steak/chicken tastes = list("chicken" = 1) /obj/item/food/meat/slab/chicken/MakeProcessable() . = ..() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/chicken, 3, 30) +/obj/item/food/meat/slab/chicken/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/chicken, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? (no this is chicken) + /obj/item/food/meat/slab/chicken/Initialize() . = ..() AddElement(/datum/element/swabable, CELL_LINE_TABLE_CHICKEN, CELL_VIRUS_TABLE_GENERIC_MOB) @@ -717,6 +900,7 @@ trash_type = /obj/item/trash/plate foodtypes = MEAT tastes = list("meat" = 1) + burns_on_grill = TRUE /obj/item/food/meat/steak/Initialize() . = ..() @@ -812,13 +996,15 @@ name = "raw cutlet" desc = "A raw meat cutlet." icon_state = "rawcutlet" - microwaved_type = /obj/item/food/meat/cutlet/plain bite_consumption = 2 - food_reagents = list(/datum/reagent/consumable/nutriment/protein = 1) + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2) tastes = list("meat" = 1) foodtypes = MEAT | RAW var/meat_type = "meat" +/obj/item/food/meat/rawcutlet/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/plain, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) + /obj/item/food/meat/rawcutlet/OnCreatedFromProcessing(mob/living/user, obj/item/I, list/chosen_option, atom/original_atom) ..() if(istype(original_atom, /obj/item/food/meat/slab)) @@ -835,10 +1021,12 @@ /obj/item/food/meat/rawcutlet/plain /obj/item/food/meat/rawcutlet/plain/human - microwaved_type = /obj/item/food/meat/cutlet/plain/human tastes = list("tender meat" = 1) foodtypes = MEAT | RAW | GROSS +/obj/item/food/meat/rawcutlet/plain/human/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/plain/human, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) + /obj/item/food/meat/rawcutlet/plain/human/OnCreatedFromProcessing(mob/living/user, obj/item/I, list/chosen_option, atom/original_atom) . = ..() if(istype(original_atom, /obj/item/food/meat)) @@ -852,44 +1040,55 @@ /obj/item/food/meat/rawcutlet/killertomato name = "raw killer tomato cutlet" - microwaved_type = /obj/item/food/meat/cutlet/killertomato tastes = list("tomato" = 1) foodtypes = FRUIT +/obj/item/food/meat/rawcutlet/killertomato/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/killertomato, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) + /obj/item/food/meat/rawcutlet/bear name = "raw bear cutlet" - microwaved_type = /obj/item/food/meat/cutlet/bear tastes = list("meat" = 1, "salmon" = 1) /obj/item/food/meat/rawcutlet/bear/Initialize() . = ..() AddElement(/datum/element/swabable, CELL_LINE_TABLE_BEAR, CELL_VIRUS_TABLE_GENERIC_MOB) +/obj/item/food/meat/rawcutlet/bear/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/bear, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) /obj/item/food/meat/rawcutlet/xeno name = "raw xeno cutlet" - microwaved_type = /obj/item/food/meat/cutlet/xeno tastes = list("meat" = 1, "acid" = 1) +/obj/item/food/meat/rawcutlet/xeno/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/xeno, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) + /obj/item/food/meat/rawcutlet/spider name = "raw spider cutlet" - microwaved_type = /obj/item/food/meat/cutlet/spider tastes = list("cobwebs" = 1) +/obj/item/food/meat/rawcutlet/spider/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/spider, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) /obj/item/food/meat/rawcutlet/gondola name = "raw gondola cutlet" - microwaved_type = /obj/item/food/meat/cutlet/gondola tastes = list("meat" = 1, "tranquility" = 1) +/obj/item/food/meat/rawcutlet/gondola/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/gondola, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) /obj/item/food/meat/rawcutlet/penguin name = "raw penguin cutlet" - microwaved_type = /obj/item/food/meat/cutlet/penguin tastes = list("beef" = 1, "cod fish" = 1) +/obj/item/food/meat/rawcutlet/penguin/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/penguin, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) + /obj/item/food/meat/rawcutlet/chicken name = "raw chicken cutlet" - microwaved_type = /obj/item/food/meat/cutlet/chicken tastes = list("chicken" = 1) +/obj/item/food/meat/rawcutlet/chicken/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/chicken, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) + /obj/item/food/meat/rawcutlet/chicken/Initialize() . = ..() AddElement(/datum/element/swabable, CELL_LINE_TABLE_CHICKEN, CELL_VIRUS_TABLE_GENERIC_MOB) @@ -904,6 +1103,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2) tastes = list("meat" = 1) foodtypes = MEAT + burns_on_grill = TRUE /obj/item/food/meat/cutlet/Initialize() . = ..() diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm index 6b7025b8a33..9f12998c9f0 100644 --- a/code/game/objects/items/food/misc.dm +++ b/code/game/objects/items/food/misc.dm @@ -159,6 +159,14 @@ foodtypes = GROSS w_class = WEIGHT_CLASS_SMALL +/obj/item/food/badrecipe/Initialize() + . = ..() + RegisterSignal(src, COMSIG_ITEM_GRILLED, .proc/OnGrill) + +///Prevents grilling burnt shit from well, burning. +/obj/item/food/badrecipe/proc/OnGrill() + return COMPONENT_HANDLED_GRILLING + /obj/item/food/carrotfries name = "carrot fries" desc = "Tasty fries from fresh Carrots." diff --git a/code/modules/food_and_drinks/kitchen_machinery/griddle.dm b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm new file mode 100644 index 00000000000..0838678df21 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/griddle.dm @@ -0,0 +1,99 @@ +/obj/machinery/griddle + name = "griddle" + desc = "Because using pans is for pansies." + icon = 'icons/obj/machines/griddle.dmi' + icon_state = "griddle1_off" + density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = 5 + layer = BELOW_OBJ_LAYER + circuit = /obj/item/circuitboard/machine/griddle + processing_flags = START_PROCESSING_MANUALLY + resistance_flags = FIRE_PROOF + + ///Things that are being griddled right now + var/list/griddled_objects = list() + ///Looping sound for the grill + var/datum/looping_sound/grill/grill_loop + ///Whether or not the machine is turned on right now + var/on = FALSE + ///What variant of griddle is this? + var/variant = 1 + ///How many shit fits on the griddle? + var/max_items = 8 + +/obj/machinery/griddle/Initialize() + . = ..() + grill_loop = new(list(src), FALSE) + variant = rand(1,3) + +/obj/machinery/griddle/attackby(obj/item/I, mob/user, params) + . = ..() + if(griddled_objects.len >= max_items) + to_chat(user, "[src] can't fit more items!") + return + if(user.transferItemToLoc(I, src, silent = FALSE)) + var/list/click_params = params2list(params) + //Center the icon where the user clicked. + if(!click_params || !click_params["icon-x"] || !click_params["icon-y"]) + return + //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf) + I.pixel_x = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) + I.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + to_chat(user, "You place [I] on [src].") + AddToGrill(I, user) + update_icon() + +/obj/machinery/griddle/attack_hand(mob/user) + . = ..() + on = !on + if(on) + begin_processing() + else + end_processing() + update_icon() + update_grill_audio() + + +/obj/machinery/griddle/proc/AddToGrill(obj/item/item_to_grill, mob/user) + vis_contents += item_to_grill + griddled_objects += item_to_grill + item_to_grill.flags_1 |= IS_ONTOP_1 + RegisterSignal(item_to_grill, COMSIG_MOVABLE_MOVED, .proc/ItemMoved) + RegisterSignal(item_to_grill, COMSIG_GRILL_COMPLETED, .proc/GrillCompleted) + update_grill_audio() + +/obj/machinery/griddle/proc/ItemMoved(obj/item/I, atom/OldLoc, Dir, Forced) + SIGNAL_HANDLER + I.flags_1 &= ~IS_ONTOP_1 + griddled_objects -= I + vis_contents -= I + UnregisterSignal(I, COMSIG_GRILL_COMPLETED) + update_grill_audio() + +/obj/machinery/griddle/proc/GrillCompleted(obj/item/source, atom/grilled_result) + SIGNAL_HANDLER + griddled_objects -= source //Old object + AddToGrill(grilled_result) + +/obj/machinery/griddle/proc/update_grill_audio() + if(on && griddled_objects.len) + grill_loop.start() + else + grill_loop.stop() + + +/obj/machinery/griddle/process(delta_time) + ..() + for(var/i in griddled_objects) + var/obj/item/griddled_item = i + if(SEND_SIGNAL(griddled_item, COMSIG_ITEM_GRILLED, src, delta_time) & COMPONENT_HANDLED_GRILLING) + continue + griddled_item.fire_act(1000) //Hot hot hot! + if(prob(10)) + visible_message("[griddled_item] doesn't seem to be doing too great on the [src]!") + +/obj/machinery/griddle/update_icon_state() + . = ..() + icon_state = "griddle[variant]_[on ? "on" : "off"]" + diff --git a/code/modules/food_and_drinks/kitchen_machinery/grill.dm b/code/modules/food_and_drinks/kitchen_machinery/grill.dm index 8dc1678843f..7972cea5d46 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/grill.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/grill.dm @@ -61,6 +61,7 @@ return else if(!grilled_item && user.transferItemToLoc(I, src)) grilled_item = I + RegisterSignal(grilled_item, COMSIG_GRILL_COMPLETED, .proc/GrillCompleted) ADD_TRAIT(grilled_item, TRAIT_FOOD_GRILLED, "boomers") to_chat(user, "You put the [grilled_item] on [src].") update_icon() @@ -81,6 +82,7 @@ smoke.set_up(1, loc) smoke.start() if(grilled_item) + SEND_SIGNAL(grilled_item, COMSIG_ITEM_GRILLED, src, delta_time) grill_time += delta_time grilled_item.reagents.add_reagent(/datum/reagent/consumable/char, 0.5 * delta_time) grill_fuel -= GRILL_FUELUSAGE_ACTIVE * delta_time @@ -142,8 +144,14 @@ grilled_item.desc = "A [grilled_item.name]. Reminds you of your wife, wait, no, it's prettier!" grilled_item.foodtype |= FRIED grill_time = 0 + UnregisterSignal(grilled_item, COMSIG_GRILL_COMPLETED, .proc/GrillCompleted) grill_loop.stop() +///Called when a food is transformed by the grillable component +/obj/machinery/grill/proc/GrillCompleted(obj/item/source, atom/grilled_result) + SIGNAL_HANDLER + grilled_item = grilled_result //use the new item!! + /obj/machinery/grill/unwrenched anchored = FALSE diff --git a/code/modules/food_and_drinks/recipes/processor_recipes.dm b/code/modules/food_and_drinks/recipes/processor_recipes.dm index 44d49b07817..54ec6e7ad1f 100644 --- a/code/modules/food_and_drinks/recipes/processor_recipes.dm +++ b/code/modules/food_and_drinks/recipes/processor_recipes.dm @@ -7,7 +7,49 @@ /datum/food_processor_process/meat input = /obj/item/food/meat/slab - output = /obj/item/food/meatball + output = /obj/item/food/raw_meatball + multiplier = 3 + +/datum/food_processor_process/cutlet + input = /obj/item/food/meat/cutlet/plain + output = /obj/item/food/raw_meatball + +/datum/food_processor_process/meat/human + input = /obj/item/food/meat/slab/human + output = /obj/item/food/raw_meatball/human + +/datum/food_processor_process/cutlet/human + input = /obj/item/food/meat/cutlet/plain/human + output = /obj/item/food/raw_meatball/human + +/datum/food_processor_process/meat/corgi + input = /obj/item/food/meat/slab/corgi + output = /obj/item/food/raw_meatball/corgi + +/datum/food_processor_process/meat/xeno + input = /obj/item/food/meat/slab/xeno + output = /obj/item/food/raw_meatball/xeno + +/datum/food_processor_process/cutlet/xeno + input = /obj/item/food/meat/cutlet/xeno + output = /obj/item/food/raw_meatball/xeno + +/datum/food_processor_process/meat/bear + input = /obj/item/food/meat/slab/bear + output = /obj/item/food/raw_meatball/bear + +/datum/food_processor_process/cutlet/bear + input = /obj/item/food/meat/cutlet/bear + output = /obj/item/food/raw_meatball/bear + +/datum/food_processor_process/meat/chicken + input = /obj/item/food/meat/slab/chicken + output = /obj/item/food/raw_meatball/chicken + multiplier = 3 + +/datum/food_processor_process/cutlet/chicken + input = /obj/item/food/meat/cutlet/chicken + output = /obj/item/food/raw_meatball/chicken /datum/food_processor_process/bacon input = /obj/item/food/meat/rawcutlet diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm index e82d58fdc6c..1f44145e14e 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm @@ -8,10 +8,10 @@ name = "Human burger" reqs = list( /obj/item/food/bun = 1, - /obj/item/food/meat/steak/plain/human = 1 + /obj/item/food/patty/human = 1 ) parts = list( - /obj/item/food/meat/steak/plain/human = 1 + /obj/item/food/patty = 1 ) result = /obj/item/food/burger/human subcategory = CAT_BURGER @@ -19,7 +19,7 @@ /datum/crafting_recipe/food/burger name = "Burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/food/bun = 1 ) @@ -29,7 +29,7 @@ /datum/crafting_recipe/food/corgiburger name = "Corgi burger" reqs = list( - /obj/item/food/meat/slab/corgi = 1, + /obj/item/food/patty/corgi = 1, /obj/item/food/bun = 1 ) @@ -57,7 +57,7 @@ /datum/crafting_recipe/food/xenoburger name = "Xeno burger" reqs = list( - /obj/item/food/meat/steak/xeno = 1, + /obj/item/food/patty/xeno = 1, /obj/item/food/bun = 1 ) result = /obj/item/food/burger/xeno @@ -66,7 +66,7 @@ /datum/crafting_recipe/food/bearger name = "Bearger" reqs = list( - /obj/item/food/meat/steak/bear = 1, + /obj/item/food/patty/bear = 1, /obj/item/food/bun = 1 ) result = /obj/item/food/burger/bearger @@ -122,7 +122,7 @@ /datum/crafting_recipe/food/redburger name = "Red burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/toy/crayon/red = 1, /obj/item/food/bun = 1 ) @@ -132,7 +132,7 @@ /datum/crafting_recipe/food/orangeburger name = "Orange burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/toy/crayon/orange = 1, /obj/item/food/bun = 1 ) @@ -142,7 +142,7 @@ /datum/crafting_recipe/food/yellowburger name = "Yellow burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/toy/crayon/yellow = 1, /obj/item/food/bun = 1 ) @@ -152,7 +152,7 @@ /datum/crafting_recipe/food/greenburger name = "Green burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/toy/crayon/green = 1, /obj/item/food/bun = 1 ) @@ -162,7 +162,7 @@ /datum/crafting_recipe/food/blueburger name = "Blue burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/toy/crayon/blue = 1, /obj/item/food/bun = 1 ) @@ -172,7 +172,7 @@ /datum/crafting_recipe/food/purpleburger name = "Purple burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/toy/crayon/purple = 1, /obj/item/food/bun = 1 ) @@ -182,7 +182,7 @@ /datum/crafting_recipe/food/blackburger name = "Black burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/toy/crayon/black = 1, /obj/item/food/bun = 1 ) @@ -192,7 +192,7 @@ /datum/crafting_recipe/food/whiteburger name = "White burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/toy/crayon/white = 1, /obj/item/food/bun = 1 ) @@ -220,7 +220,7 @@ /datum/crafting_recipe/food/bigbiteburger name = "Big bite burger" reqs = list( - /obj/item/food/meat/steak/plain = 3, + /obj/item/food/patty/plain = 3, /obj/item/food/bun = 1, /obj/item/food/cheesewedge = 2 ) @@ -232,7 +232,7 @@ reqs = list( /datum/reagent/consumable/salt = 5, /datum/reagent/consumable/blackpepper = 5, - /obj/item/food/meat/steak/plain = 5, + /obj/item/food/patty/plain = 5, /obj/item/food/grown/tomato = 4, /obj/item/food/cheesewedge = 3, /obj/item/food/boiledegg = 1, @@ -264,7 +264,7 @@ /datum/crafting_recipe/food/fivealarmburger name = "Five alarm burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/food/grown/ghost_chili = 2, /obj/item/food/bun = 1 ) @@ -322,7 +322,7 @@ /datum/crafting_recipe/food/cheeseburger name = "Cheese Burger" reqs = list( - /obj/item/food/meat/steak/plain = 1, + /obj/item/food/patty/plain = 1, /obj/item/food/bun = 1, /obj/item/food/cheesewedge = 1, ) @@ -362,7 +362,7 @@ /datum/crafting_recipe/food/chickenburger name = "Chicken Sandwich" reqs = list( - /obj/item/food/meat/steak/chicken = 1, + /obj/item/food/patty/chicken = 1, /datum/reagent/consumable/mayonnaise = 5, /obj/item/food/bun = 1 ) @@ -372,7 +372,7 @@ /datum/crafting_recipe/food/crazyhamburger name = "Crazy hamburger" reqs = list( - /obj/item/food/meat/steak/plain = 2, + /obj/item/food/patty/plain = 2, /obj/item/food/bun = 1, /obj/item/food/cheesewedge = 2, /obj/item/food/grown/chili = 1, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index adda5dd4392..31fcfb4f493 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -161,7 +161,7 @@ /obj/item/food/meatball = 1, /obj/item/food/meat/cutlet = 2 ) - result = /obj/item/food/sausage + result = /obj/item/food/raw_sausage subcategory = CAT_MEAT /datum/crafting_recipe/food/nugget diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index da10a930acf..7f2d48ca7fc 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -497,6 +497,14 @@ category = list ("Misc. Machinery") departmental_flags = DEPARTMENTAL_FLAG_SERVICE +/datum/design/board/griddle + name = "Machine Design (Griddle)" + desc = "The circuit board for a Griddle." + id = "griddle" + build_path = /obj/item/circuitboard/machine/griddle + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + /datum/design/board/donksofttoyvendor name = "Machine Design (Donksoft Toy Vendor Board)" desc = "The circuit board for a Donksoft Toy Vendor." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 7428033d5ed..cb7106ef283 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -83,7 +83,7 @@ display_name = "Biological Processing" description = "From slimes to kitchens." prereq_ids = list("biotech") - design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive", "fat_sucker") + design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive", "fat_sucker", "griddle") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /////////////////////////Advanced Surgery///////////////////////// diff --git a/icons/effects/steam.dmi b/icons/effects/steam.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4533e27f890bf7f7b694edec2043f7ec935e87e7 GIT binary patch literal 1041 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

-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