a012d1a65814a5dd58d6cf4f7bea42f02e8d32b0
They had no recipe at all: their buffers were unioned over every recipe of their type, so one smelter accepted all four ores at once, held three kinds of ingot at once, and ran whichever recipe happened to have its inputs. That is four recipes coexisting in one building. New REQ-BLD-AUTO-RECIPE makes them ordinary selectable-recipe buildings that size their buffers for the one recipe they hold, with a single addition: while no recipe is set, the first material offered at an input port that any of their recipes consumes selects it. That covers every intake path, direct coupling included -- a building that accepts nothing would otherwise leave a coupled producer stuck at its port forever. Ports in order, config order as tie-break, so the choice is deterministic. Once set the recipe never changes on its own, which is what settles the case of recipes sharing some inputs but not others: there is no second guess to make. The player changes it through the ordinary selection dialog, which clears the buffers and so also frees a building holding part of a cycle nothing feeds any more -- no separate clear action is needed. The dialog's clearing option reads (Auto) rather than (None) there, since it returns the building to automatic selection rather than leaving it idle. Consequently these buildings can now be grey, have a recipe control in the selection card, and drop the special cases they needed for having no recipe to name: the buffer-chip union and the recipe summary's "recipe it ran last". Requirements only; the implementation follows. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
Description
No description provided
Languages
C++
96%
CMake
2.2%
Python
1.2%
C
0.6%