Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kitchen rework part 1: machines and recipes. #28277

Open
wants to merge 36 commits into
base: master
Choose a base branch
from

Conversation

warriorstar-orion
Copy link
Contributor

@warriorstar-orion warriorstar-orion commented Feb 6, 2025

What Does This PR Do

This PR implements the first part of the kitchen rework, covering machines and recipes.

The new cooking system is based off of CWJ, a module which I believe was first implemented in Sojourn Station. This code has been extensively rewritten not only to improve the implementation and bring it in line with Para coding standards/idioms, but extended to include all of our existing machines and recipes.

More is coming but this is just getting the first phase in a TMable state to start getting player feedback, iron out bugs, and get eyes on the code.

The converted recipes are viewable here: https://gist.github.com/warriorstar-orion/a6a54bf10a046fc79ecea993bc670705 Note that this is only the initial, bulk conversion, and that the recipes may be tweaked in the future to make more sense or be more/less complex as is fitting.

Summary

Kitchens now have new and reworked machines: stovetops, grills, ovens, deep fryers, and ice cream mixers.

Recipes are made on/in a container, and optionally that container is placed on a cooking machine to finish/progress the recipe.
For example, to make a burger, a bun, lettuce, and patty must be put on a cutting board. To make a fried egg, an egg, salt, and pepper must be placed in a pan, and the pan must be placed on a stovetop and cooked for 10 seconds on medium.

Food now has a quality rating. The more closely a recipe is followed, the better the rating. The higher upgrade-tier the cooking machines, the better the rating. Quality rating currently has no mechanical benefits but will soon be expanded to include useful buffs.

This is just the foundation for the kitchen rework; all the stuff regarding food quality and mid-round mechanical improvements like autochefs are coming in later PRs; trying to do this all at once would be a nightmare and exhausting to test and review.

Why It's Good For The Game

See the project discussion thread for background and motivation.

Images of changes

2025_02_06__10_00_59__Paradise Station 13

2025_02_06__09_54_44__Paradise Station 13

Testing

So much.


Declaration

  • I confirm that I either do not require pre-approval for this PR, or I have obtained such approval and have included a screenshot to demonstrate this below.

Changelog

🆑
add: Cooking machines and recipes have been reworked. Recipes now typically require a "container" for ingredients, such as a prep bowl for salads or a frying pan for using on the stove. Most recipe steps must be followed in order, and their cooking steps will specify a temperature and an amount of time.
add: Kitchens have new and reworked machines: stovetops, grills, ovens, deep fryers, and ice cream mixer.
add: Prepared food now has a quality rating. The more closely the recipe is followed, and the higher the cooking machine upgrades, the better the rating. This rating has no mechanical benefits currently.
add: The chef's PDA starts with a cartridge containing a searchable database of all food recipes.
add: Leaving food cooking on a machine for too long will cause it to become a burned mess. Leave it on longer than that and the machine will catch on fire!
wip: Currently the only purpose of microwaves is to reheat donk pockets. Microwaves have been added into some department break rooms.
wip: Expert chef knowledge temporarily disabled while it gets integrated into the new recipe system.
wip: Some cooking machine interactions such as special attacks and deep fryer ice explosions are temporarily disabled.
fix: Recipes meant to remove toxins on creation, such as boiled spider legs, work properly.
del: Mixing bowls have been removed as they are no longer necessary for available recipes.
/:cl:

@ParadiseSS13-Bot ParadiseSS13-Bot added Testmerge Requested This PR has a pending testmerge request -Status: Awaiting approval This PR is waiting for approval internally Map Edit This PR will modify a map Sprites This PR modifies the game sprites Sound This PR modifies the game sound TGUI This PR modifies TGUI, will conflict labels Feb 6, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot added the Testmerge Active This PR is currently testmerged on production label Feb 6, 2025
@WenlockTheBritishHobo
Copy link
Contributor

Cakes don't seem to be able to be made.

Might be something to do with reagents in cooking, or specifically milk?

@ParadiseSS13-Bot ParadiseSS13-Bot added Testmerge Active This PR is currently testmerged on production and removed Testmerge Active This PR is currently testmerged on production labels Feb 7, 2025
@AshGraham94
Copy link

I think there might be an issue with some cutting board recipes? yesterday I tried making peanut butter banana sandwiches, and it will say "you are finished cooking with the cutting board" after only adding one bread slice and the peanut butter. won't take anything else to finish the recipe saying the cutting board is full. similar issue with the PB&J variant.

@WenlockTheBritishHobo
Copy link
Contributor

It seems like it's recipes that partially or fully use reagents that don't properly work. Such as Wish Soup or the Superbite Burger.

@ParadiseSS13-Bot ParadiseSS13-Bot removed the Testmerge Active This PR is currently testmerged on production label Feb 7, 2025
@hanyuuuuuuuu
Copy link

I love this PR and think all of these changes make playing around in the kitchen really, really fun, though putting reagents and items on/in cooking utensils seems a decent bit scuffed as you have to follow your recipe in the exact order specified in the recipe book in some cases.


// Burn times for cooking things on a stove.
// Anything put on a stove for this long becomes a burned mess.
#define PCWJ_BURN_TIME_LOW 3 MINUTES
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that these times are overly forgiving.

Setting the cook time to exact is trivial, and there's no risk in setting something to cook for 59 seconds in this way.

I'd like to see the times adjusted so that there's some risk involved, otherwise no one is going to burn food ever again.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I make them any lower they're going to start cutting into the actual times we have for recipes, which are anywhere from 10 to 40 seconds. Are you thinking starting at say the 45 second range?


return calculated_quality - (total_volume - calculated_volume)

/proc/initialize_cooking_recipes()
Copy link
Contributor

@pwbokie pwbokie Feb 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice if this initialize_cooking_recipes checked for duplicates. I recall seeing an exact duplicate of a recipe in the cookbook at least once.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be a good call for a unit test, but probably doesn't need to happen on live.

@github-actions github-actions bot added the Merge Conflict This PR is merge conflicted label Feb 12, 2025
Copy link
Contributor

@lewcc lewcc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First real look

@github-actions github-actions bot added Merge Conflict This PR is merge conflicted and removed Merge Conflict This PR is merge conflicted labels Feb 24, 2025
@ParadiseSS13-Bot ParadiseSS13-Bot added the Testmerge Active This PR is currently testmerged on production label Feb 26, 2025
@ArcZelf
Copy link
Contributor

ArcZelf commented Feb 26, 2025

Testmerge round 2 (or is it 3??)

Berry Muffins have an underscore in their name, not sure if this is your fault but it's probably an easy fix.
image

Deep Fryers need a different sprite when it's done frying and there are contents inside, it's easy to forget you have something in the deep fryer when you're using multiple machines at once.

@github-actions github-actions bot removed the Merge Conflict This PR is merge conflicted label Feb 26, 2025
@Git-GoR
Copy link
Contributor

Git-GoR commented Feb 26, 2025

Couple of things I noticed on a short TM round.

  • Salt/pepper shakers made the default liquid sounds when adding their contents into a grill (imagine extends to any cooking vessel)
  • I was unable to find a preparing bowl to make salads and the such. Default bowls seem to make custom soups
  • Related to this one, cooking pots make fully-bowled soups, which can then be added to a soup bowl, making a "french onion soup soup". But this may have been an old issue with custom recipes anyways
  • The PJB (and possibly other sandwiches with reagents) was unable to be completed, as after adding the 5u of peanut butter, the cutting board says you finished cooking with it and trying to add a banana results in the board being already full.
  • Cooking pots inside the stove report their contents twice, one of them being wrong.
    imagen

Apart from this, a small feedback on the Recipe List app - which I am aware may be out of scope for this first iteration:

  • The app lags for a couple of seconds when opening, which I imagine is due to the amount of recipes that are in. This is expected, and probably difficult to remedy. It becomes specially problematic when opening the PDA again, as it will remember it was closed on the Recipe Book app.
  • The app could benefit of a "pin" feature, where you could select certain recipes to be shown outside the general search to avoid the re-search every time you open the app, and maybe bypass the lag if the search itself is behind another menu.

@Qwertytoforty
Copy link
Contributor

Qwertytoforty commented Feb 27, 2025

One more feedback thing that occured to me now: no way to get replacements for cookwear, either from cargo or the autolathe
Minor related thing: The material values of the cookwear are comically low. The kichen knife for example is 12000 metal, a metal sheet is 2000.
A metal pan is 10 metal. This won't matter really as no one will recycle them, but will matter if added to autolathe.

Edit: perma also lacks cookwear

Extra edit: prob could use a way to heat up donks in the kitchen still, but that is me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-Status: Awaiting review This PR is awaiting review from the review team Map Edit This PR will modify a map Sound This PR modifies the game sound Sprites This PR modifies the game sprites Testmerge Active This PR is currently testmerged on production Testmerge Requested This PR has a pending testmerge request TGUI This PR modifies TGUI, will conflict
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

10 participants