Skip to content

feat: grill octopus, cut jellyfish into strips for salads, ladle Seafood Chowder and Seafood Stew - #120

Merged
JustinasLa merged 6 commits into
mainfrom
feat/octopus-jellyfish
Nov 2, 2026
Merged

JustinasLa merged 6 commits into
mainfrom
feat/octopus-jellyfish

Conversation

@JustinasLa

Copy link
Copy Markdown
Contributor

Gives octopus and jellyfish (seafood_octopus, seafood_jellyfish) real uses. Config and assets only, no Java.

What was already there

  • Catching and cutting. On Dev and Main, tfmc_octopus (10-80 cm) and the blue and pink jellyfish (1-40 cm) are in CustomFishing's tfmc_warm_ocean group. Any rod can catch them in ocean, lukewarm/warm ocean and river/beach biomes, sharing that group's weight with the other warm-water fish. custom-fishing.yml gives them cuts octopus and jellyfish, so the cutting board's cut_seafood turns a whole catch into one seafood_octopus or seafood_jellyfish piece, the same way it makes a fish filet.
  • Cooking them. Like fish filets, both already have frying-pan (cooked) and pot (boiled) options, models for every state, and they mash into a generic "Octopus Soup". That's all they had: they weren't salad, sandwich or pie ingredients, and nothing named a seafood soup.
  • Dev only (not in this repo): Dev's frying-pan pan_slot whitelist has lost the three seafood lines that Main still has, so filets, octopus and jellyfish can't go in the pan on Dev at all. The Dev script adds them back.

Changes

  • Grilled Octopus. seafood_octopus gets a frying-pan output: seafood(type=grilled_octopus), the same pattern as grilled mushrooms. When it's done it becomes Grilled Octopus, keeping its stars, age, lineage and origin, and it burns as grilled octopus if left on. Boiled in the pot, it stays octopus. New grilled_octopus type and model: its own grilled look, and the octopus burnt and rotten looks for those states.
  • Jellyfish Strips. New cutting-board recipe slice_jellyfish (inherit, share-food): jellyfish cubes are cut where they lie into jellyfish_strips. The strips stay raw, fried or boiled, as the cubes were, and keep the cubes' age and food. Models exist for every state.
  • Seafood salads. salads.yml gets a seafood ingredient that takes grilled octopus and jellyfish strips. Any jellyfish counts as just "Jellyfish" in the name: "Octopus, Jellyfish and Tomato Salad". Raw strips keep their raw penalty, like raw cut vegetables, so boil the cubes first (blanched, as in a real jellyfish salad).
  • Seafood Chowder and Seafood Stew. Two entries in the pot.yml kinds added by feat: grind sugar cane into sugar, ladle beetroot soup as Borscht, convert sweet berries #119 (Borscht):
    • Seafood with a potato (other vegetables or mushrooms allowed) is a Seafood Chowder.
    • Seafood with other vegetables, or two kinds of seafood, is a Seafood Stew.
    • One seafood alone is still "Octopus Soup", and so is any soup with meat in it.
    • I first wrote my own pot kinds (pot.yml layers plus types.yml overrides). Once feat: grind sugar cane into sugar, ladle beetroot soup as Borscht, convert sweet berries #119 landed, I dropped that and used its mechanism, so there's only one.
  • Assets. grilled_octopus is the existing octopus tentacle geometry with a new texture made from octopus_cooked.png: seared skin, grill bars across the tentacle, golden suckers. jellyfish_strips_<state> is a pile of thin strips on the cubes' own textures. Both are generated by tf-minecraft/scratch/new-foods/octopus-jellyfish/bin/gen.py, which also makes Dev's salad-bowl heaps (rounds of tentacle, strips of jellyfish) with the salad-models generator's code. Offline preview: bin/preview.js.

Contract

  • Servers with their own configs (Dev, Main) need these entries to get the features:
    • the pan output line and the two types in types.yml
    • the two models.yml blocks
    • the recipe in crafting-stations.yml
    • the salad layer in salads.yml
    • the kinds in pot.yml
    • the IA items
    • InteractibleFurniture whitelists:
      • the cutting board's board_slot and board_slot_mirrored need c.seafood(type=seafood_jellyfish)
      • Dev's pan needs its seafood lines back
  • The salad bowl heaps (salad_bowl_grilled_octopus_*, salad_bowl_jellyfish_strips_*) are Dev-only, like the other salad bowl items. Without them, an ingredient shows as it looks in hand.

Tests

mvn -o -B clean verify: 1455 tests, JaCoCo 100% line coverage met. New tests:

  • Chowder and Stew from the shipped pot.yml, salt not counting, one seafood alone and seafood with meat staying plain soups (SeafoodSoupCoverageTest)
  • the seafood salad layer and its "Jellyfish" naming (SeafoodSaladTest)
  • the pan output, the strip recipe, and every models.yml look being an IA item with its model and texture (OctopusJellyfishAssetsTest)

🤖 Generated with Claude Code

JustinasLa and others added 4 commits November 1, 2026 20:53
Octopus grilled in the frying pan now becomes Grilled Octopus (a pan
cooking-option output, like grilled mushrooms); boiled in the pot it stays
octopus. Jellyfish cubes cut on the cutting board become Jellyfish Strips,
keeping their cooking, age and food. Both go into salads as a new seafood
ingredient, where any jellyfish is just "Jellyfish".

The pot can now name a soup by its kind: pot.yml ingredients and kinds,
written like salads.yml's, give the soup its kind as origin, and a types.yml
soup override names it. Boiled seafood mashed with a potato is a Seafood
Chowder; with other vegetables or another seafood it is a Seafood Stew.
Soups of one seafood alone, or with meat, keep their old names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…l kinds

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Nov 1, 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: f97ec894-3073-4b6c-a550-0cd8474b5f7a
  • 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:L 100-499 effective changed lines (tests excluded in mixed PRs). label Nov 1, 2026
# Conflicts:
#	src/main/resources/crafting-stations.yml
@JustinasLa
JustinasLa merged commit ac349fd into main Nov 2, 2026
3 checks passed
@JustinasLa
JustinasLa deleted the feat/octopus-jellyfish branch November 2, 2026 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 effective changed lines (tests excluded in mixed PRs).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant