number the buildings from the factory that holds them
The building-id counter was the last piece of factory data living on Simulation behind a callback: every construction site, every building, and every tile a station entity claims took its id from a std::function BuildingSystem held, which the arena and three test fixtures each had to supply. It moves into FactoryState as nextBuildingId, handed out by allocateBuildingId(state) in FactoryQueries beside the other operations over the state. BuildingSystem's callback is gone; so are Simulation::allocateBuildingId and ArenaSimulation::allocateBuildingId, whose remaining callers now allocate from the state directly. Checksum order is untouched: Simulation folds the counter where it always did. What is left on BuildingSystem is the config, the belts, the RNG, and two callbacks that reach genuinely outside the factory -- spawning a finished ship into the entity model, and testing an output group against the unlock state. Neither is factory data, so this is where the migration stops. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
This commit is contained in:
@@ -169,7 +169,6 @@ private:
|
||||
|
||||
void handleEvent(std::shared_ptr<const TracePrintRequestedEvent> event) override;
|
||||
|
||||
BuildingId allocateBuildingId(); // Strictly increasing; never returns kInvalidBuildingId.
|
||||
|
||||
// (Re-)create every owned subsystem. Shared by the constructor and reset();
|
||||
// the construction order is load-bearing for determinism, so both paths must
|
||||
@@ -195,7 +194,6 @@ private:
|
||||
|
||||
Tick m_currentTick;
|
||||
Tick m_nextDepartureTick;
|
||||
BuildingId m_nextBuildingId;
|
||||
int m_expansionsPurchased = 0; // REQ-EXP-COST formula variable x
|
||||
bool m_gameOver = false;
|
||||
bool m_isWon = false;
|
||||
|
||||
Reference in New Issue
Block a user