Skip to content

feat: pop corn into popcorn with toppings in a popcorn machine - #113

Merged
JustinasLa merged 1 commit into
mainfrom
feat/popcorn-machine
Oct 31, 2026
Merged

JustinasLa merged 1 commit into
mainfrom
feat/popcorn-machine

Conversation

@JustinasLa

Copy link
Copy Markdown
Contributor

Summary

A popcorn machine pops corn into popcorn, with toppings.

  • Filling. Right-click it with corn: one goes in per click, up to 16 (max-input). Right-click it with caramel, sugar, butter or salt to add a topping: up to 2, each kind once. Only refusals are told (full, rotten corn, wrong item, topping already in).
  • Popping. An empty hand starts it. The kettle rattles; kernels pop out as short-lived, never-saved displays that arc, bounce off the glass and land on a heap that rises a level at a time; the kettle tips out the last of them and a bell rings (PopcornAnimation, about 8 s).
  • Taking it. Once it stops, a right-click gives 4 popcorn per corn (yield), each with its corn's stars and lineage and every topping. What doesn't fit drops at the player's feet.
  • State. The corn and toppings are kept in the furniture's variables as food strings. Breaking it gives them back, or the popcorn once popped. A restart mid-show leaves it done.
  • Toppings. Each puts its tags.yml track (topping_caramel, topping_sugar, topping_butter, topping_salt) on every piece. It names the popcorn (naming.yml prefix-tracks: Buttered Salted Caramel Popcorn) and changes its food and nutrition.
  • Looks. A hidden popcorn_look track is set by the first topping put in that has a look. So butter then caramel looks buttered, and caramel then butter looks caramel. It shows nowhere in the lore. models.yml popcorn gains caramel and buttered looks, and the machine's heap has plain, caramel and buttered versions at four heights. Caramel popcorn uses tfmc_pack's existing food/caramelcorn texture; buttered popcorn is new.
  • Caramel. Sugar and butter boiled in a cup of water in the saucepan and bottled (condiments.yml; a line for churned butter, which is dairy, and one for picked-up butter, an ingredient). It shows as the pack's existing tfmc_cooking:caramel item.
  • Edible popcorn. The popcorn items (popcorn, _burnt, _rotten, _caramel, _buttered) move from PAPER to APPLE so they can be eaten.

Everything is configurable in popcorn-machines.yml: the input, the yield, the toppings and their looks, the models, the slots and the animation's timing and room. The popcorn_machine furniture (InteractibleFurniture) is server config (Dev only so far). Tested on Dev; mvn -B clean verify passes with 100% line coverage.

Documentation impact

  • Central Cooking documentation: no change. popcorn-machines.yml and tags.yml document the new keys in their comments.

🤖 Generated with Claude Code

A popcorn machine (popcorn-machines.yml; an InteractibleFurniture type)
takes one corn per right-click, up to 16, and up to two toppings:
caramel, sugar, butter or salt, each kind once. An empty hand starts it:
the kettle rattles, kernels pop out as short-lived displays that arc,
bounce off the glass and land on a heap that rises a level at a time,
then the kettle tips out and a bell rings. Once it stops, a right-click
gives 4 popcorn per corn, each with its corn's stars and lineage and
every topping's track; what doesn't fit drops at the player's feet.
Breaking it gives back the corn and toppings, or the popcorn once
popped; a restart mid-show leaves it done.

Toppings name the popcorn (Buttered Salted Caramel Popcorn, naming.yml
prefix-tracks) and change its food and nutrition (tags.yml topping_*).
Its look comes from a hidden popcorn_look track set by the first topping
put in that has one, so butter then caramel looks buttered: new buttered
popcorn icon and heaps; caramel popcorn uses tfmc_pack's existing
caramelcorn texture. Popcorn items move from PAPER to APPLE so they can
be eaten.

Caramel is new: sugar and butter boiled in a cup of water in the
saucepan and bottled (condiments.yml), shown as the pack's existing
caramel item.

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

coderabbitai Bot commented Oct 31, 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: a2936c32-48c8-4144-9af9-077a86ae4a27
  • 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:XXL 1,000+ effective changed lines (tests excluded in mixed PRs). label Oct 31, 2026
@JustinasLa
JustinasLa merged commit 98925f3 into main Oct 31, 2026
3 checks passed
@JustinasLa
JustinasLa deleted the feat/popcorn-machine branch October 31, 2026 19:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ effective changed lines (tests excluded in mixed PRs).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant