
PotionCombine
Shapeless, UI-free potion brewing inside vanilla water cauldrons. No GUIs, no NMS.
Список изменений
• ## PotionCombine 1.2.0
The cauldrons-talk-to-each-other release.
1.2 adds the first system where two cauldrons standing next to each other can do something a lone cauldron can't: brewing chains. It also adds optional area heat and replaces the old one-task-per-dirty-cauldron pollution idle loop with one shared ticker.
No breaking changes. Synergy and area heat are both off by default, so a 1.1 server upgrades cleanly and behaves the same until you flip the new switches.
Multi-cauldron synergy
Turn on synergy.enabled and finished brews can pour straight into a neighbouring cauldron instead of hovering for manual pickup.
If the neighbour is loaded with the rest of a higher-tier recipe and the finished potion is exactly the last ingredient it needs, the hand-off happens automatically and the next brew starts.
Example: load phoenix_crown minus its phoenix_elixir in one cauldron, brew the elixir next door, walk away.
A hopper under the source cauldron still wins. Chaining is the fallback when nothing is pulling the result from below.
Downstream wait
With synergy enabled, a cauldron that is one ingredient short can wait instead of failing while an adjacent cauldron is actively brewing.
synergy.max_hold_seconds controls how long it waits. Default is 30 seconds. Set it to 0 if you want chaining without the forgiving wait window.
No deadlocks: the wait only holds for a live brewing neighbour, not another waiting cauldron.
Area heat
heat.area lets heat sources count from around the cauldron, not only the single block directly underneath.
The strongest source in range wins, with the bonus fading by distance. Sources do not stack. Off by default, so old heat behavior stays unchanged unless enabled.
Cleaner pollution idle logic
Polluted cauldrons now share one idle ticker instead of each dirty cauldron owning its own repeating task.
Same smoke behavior, same level-scaled rate, less scheduler noise on servers with a lot of used cauldrons.
API additions
Added a cancellable BrewChainEvent, fired right before a finished brew pours into a neighbour.
Added PotionCombineAPI.synergyEnabled() for plugins that need to check whether chaining is active.
Smaller things
Added tests for area heat falloff and synergy feed decisions.
Added new synergy and heat.area config sections.
Updated bundled docs and default comments for the 1.2 systems.
Notes
Chains only check the four horizontal neighbours.
Chains only feed on clean completion, never into a cauldron where the result would merely become another partial ingredient pile.
Area heat takes the best nearby source, not the sum of all sources.
The chain check happens at finish time. If the neighbour is loaded after the brew already completed, nothing retroactively pours over.
