say where the factory's data lives, now that it has moved
The FactoryState migration finished some time ago -- every system that touches the factory takes the state as an argument and holds none of it, and the const surface has become free functions over the struct -- but the comments still described the state of affairs two refactors back. FactoryState.h claimed BuildingSystem holds a reference and that passing the state into the tick methods was the remaining step, gated on ~180 const call sites that no longer exist. It now says what is true, and names what genuinely has not moved: the id counter and the block stock, factory data still living on Simulation behind callbacks. architecture.md described neither FactoryState nor FactoryQueries at all, so the Buildings section told a reader that buildings are a plain vector and nothing about who owns it or how it is read. It gains that section, including why ConstructionSystem completes a building itself. BuildingSystem.h had collected ten comment blocks whose declarations had moved out from under them -- the whole Queries section was four comments and no functions, and the deconstruction-queue tick comment sat above tickBeltPull, documenting the wrong function. Those are gone; tickBeltPull gets a comment describing what it actually does, and the Queries banner now points at where the queries went. No code changed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
This commit is contained in:
@@ -33,10 +33,15 @@ struct DeconstructionEntry
|
||||
// arrives as a tick argument instead of being owned by the system.
|
||||
//
|
||||
// Owned by Simulation (and by ArenaSimulation in the balancing tool), not by the
|
||||
// systems that operate on it. BuildingSystem holds a reference. The remaining step
|
||||
// is to pass this into the tick methods instead, so the systems become stateless
|
||||
// over it — that one is gated on the query surface, which today reaches the data
|
||||
// through BuildingSystem's ~180 const call sites.
|
||||
// systems that operate on it. Every system that touches the factory —
|
||||
// BuildingSystem, ConstructionSystem, DeconstructionSystem — takes it as an argument
|
||||
// and holds none of it, so each is stateless over the world it works on. Reading it
|
||||
// needs no system at all: the queries are free functions over this struct
|
||||
// (FactoryQueries.h, PlacementRules.h, ProductionRules.h).
|
||||
//
|
||||
// What is not here yet is the data those systems still reach back into Simulation
|
||||
// for through callbacks: the building-id counter and the global building block stock,
|
||||
// both of which are factory data living outside the factory's state.
|
||||
struct FactoryState
|
||||
{
|
||||
std::vector<Building> buildings;
|
||||
|
||||
Reference in New Issue
Block a user