gather the factory's world data into FactoryState

This commit is contained in:
2026-08-05 06:43:30 +02:00
parent 60cc187d92
commit 0edea5d961
4 changed files with 128 additions and 97 deletions

View File

@@ -15,7 +15,7 @@
#include "BeltSystem.h"
#include "Building.h"
#include "BuildingGrid.h"
#include "FactoryState.h"
#include "BuildingType.h"
#include "BuildingId.h"
#include "GameConfig.h"
@@ -294,23 +294,8 @@ private:
std::mt19937& m_rng;
int m_asteroidWidth_tiles;
std::vector<Building> m_buildings;
std::deque<ConstructionSite> m_constructionQueue;
// One pending demolition of a fully-built building (REQ-BLD-DECON-QUEUE).
// completesAt == 0 means "queued but its timer has not started yet"
// (mirrors ConstructionSite). For a Splitter, the filters it had are captured
// here so cancelDeconstruction can restore them on re-registration.
struct DeconstructionEntry
{
BuildingId id = kInvalidBuildingId;
Tick completesAt = 0;
std::vector<ItemType> splitterFilterA;
std::vector<ItemType> splitterFilterB;
};
std::deque<DeconstructionEntry> m_deconstructionQueue;
// The authority on which building owns which tile; every placement and removal
// path claims and releases its body cells here.
BuildingGrid m_grid;
// The factory's world data — buildings, queued work, tile ownership. Held here
// for now; the intent is for Simulation to own it and pass it into the tick
// methods, leaving this system stateless over it (see FactoryState.h).
FactoryState m_state;
};