Skip to content

feat: make vinegar, sap, catsup, mustard, maple syrup and olive oil - #100

Merged
JustinasLa merged 3 commits into
mainfrom
feat/condiments
Oct 31, 2026
Merged

JustinasLa merged 3 commits into
mainfrom
feat/condiments

Conversation

@JustinasLa

@JustinasLa JustinasLa commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Ways to make condiments, configured in the new condiments.yml. On Dev since 2026-10-29, together with the pizza work and the dish features built on top of it. The full in-game checks aren't confirmed yet.

  • Vinegar:
    • Wine or cider poured from its bottle into a liquid container sours into vinegar after vinegar.minutes (default 60).
    • Each bottle is one level and restarts the clock; you get the empty bottle back.
    • Once it's sour, an empty glass bottle draws one level. The vinegar is named after the brew (Wine Vinegar, Cider Vinegar) and keeps the brew's stars as its quality.
    • Which brews sour is matched by name (vinegar.brews). The container shows separate souring and vinegar levels.
    • A wine container refuses water, milk and other wines, and an empty cup is pointed to the glass bottle.
  • Sap: an empty glass bottle on an oak, birch or dark oak log (sap.logs) collects sap. The log gives sap again after sap.cooldown-minutes, kept per log in its chunk so it survives restarts.
  • Saucepan bottling:
    • Vinegar and sap pour in as the pan's liquid, like a cup of water.
    • An empty glass bottle on a heated pan that holds exactly a recipe's liquid and ingredients fills with the output and empties the pan, once it has boiled boil-seconds since the last thing went in:
      • catsup: vinegar, tomato paste and sugar
      • mustard: vinegar, mustard seeds and salt
      • maple syrup: sap alone. It's a sweetener, so it works wherever sugar does.
    • The pan's other ingredients go in as before; ingredients it didn't take before (tomato paste) go in only when a recipe for its liquid needs them.
    • Quality comes from the liquid and ingredients like a sauce's. Boiling time survives a reload.
  • Olive oil: a new per-recipe fill: false makes a fill station's recipe keep its inputs as themselves, with no pour-return. That lets the cheese press take two olives for one oil next to its milk recipe.
  • Sandwiches: catsup and mustard are layers in the default sandwiches.yml.

The food types, models, cheese press recipe, saucepan colours and ItemsAdder art are server config, deployed to Dev with this.

Documentation impact

  • Central Cooking documentation: no change. condiments.yml documents its keys, and fill is documented at the top of crafting-stations.yml.

Contract

  • Affected behavior:
    • The liquid container gains a wine type, and its "already has" message names what it holds.
    • The saucepan takes bottled vinegar and sap and fills empty glass bottles.
    • Right-clicking the configured logs with an empty glass bottle collects sap.
    • Crafting recipes accept fill.
    • Existing water, milk, sauce and station behaviour is unchanged.
  • Tests run: mvn -o -B clean verify: 1307 tests pass and line coverage is still 100%. New CondimentCoverageTest, SauceReferenceBottleTest, LiquidContainerVinegarTest, and a fill: false test in CraftingStationCoverageTest.
  • Player wiki (ProvinceSystem /wiki/cooking or related pages): no change.

Notes

  • Config source is src/main/resources. Do not edit target/.
  • cookware.yml is not loaded.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: aeefaab0-4841-4cce-b791-907e49f2f379
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions github-actions Bot added the size:XL 500-999 effective changed lines (tests excluded in mixed PRs). label Oct 29, 2026
- Vinegar: wine or cider poured into a liquid container sours into vinegar
  after vinegar.minutes; an empty glass bottle draws one level.
- Sap: an empty glass bottle on an oak, birch or dark oak log collects sap,
  with a per-log cooldown kept in the chunk.
- Saucepan bottling: vinegar and sap pour in as the liquid. An empty glass
  bottle on a pan holding exactly a recipe's liquid and ingredients, boiled
  long enough, fills with the output: catsup (vinegar, tomato paste, sugar),
  mustard (vinegar, mustard seeds, salt) and maple syrup (sap).
- Olive oil: crafting recipes can set fill: false so their inputs lie as
  themselves on a fill station, which lets the cheese press press olives.
- Catsup and mustard are sandwich layers.

Configured in the new condiments.yml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An input whose food has a display.furniture model for the station shows it,
like results already do, so olives lie crushed in the cheese press.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	src/main/java/net/tfminecraft/cooking/liquid/LiquidContainerHandler.java
@JustinasLa
JustinasLa merged commit 289aa04 into main Oct 31, 2026
3 checks passed
@JustinasLa
JustinasLa deleted the feat/condiments branch October 31, 2026 18:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 effective changed lines (tests excluded in mixed PRs).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant