migrate every factory query off BuildingSystem onto the free functions
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include "SelectedBuildingPanel.h"
|
||||
#include "FactoryQueries.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <cctype>
|
||||
@@ -234,8 +235,8 @@ void SelectedBuildingPanel::buildSingle(BuildingId id)
|
||||
m_singleBuildingId = id;
|
||||
hideAllWidgets();
|
||||
|
||||
const Building* b = m_sim->getBuildings().findBuilding(id);
|
||||
const ConstructionSite* s = b ? nullptr : m_sim->getBuildings().findSite(id);
|
||||
const Building* b = findBuilding(m_sim->getFactoryState(), id);
|
||||
const ConstructionSite* s = b ? nullptr : findSite(m_sim->getFactoryState(), id);
|
||||
if (!b && !s)
|
||||
{
|
||||
buildEmpty();
|
||||
@@ -602,7 +603,7 @@ void SelectedBuildingPanel::refreshSelectionDisplay(RefreshReason reason)
|
||||
// category owns the panel there is none: yieldToFieldSelection() has cleared it, so
|
||||
// this returns immediately and the field panel refreshes itself off the same events.
|
||||
if (!m_singleBuildingId.has_value()) { return; }
|
||||
const Building* b = m_sim->getBuildings().findBuilding(*m_singleBuildingId);
|
||||
const Building* b = findBuilding(m_sim->getFactoryState(), *m_singleBuildingId);
|
||||
if (b)
|
||||
{
|
||||
if (m_titleLabel->text().startsWith(tr("(Building) ")))
|
||||
@@ -615,7 +616,7 @@ void SelectedBuildingPanel::refreshSelectionDisplay(RefreshReason reason)
|
||||
}
|
||||
return;
|
||||
}
|
||||
const ConstructionSite* s = m_sim->getBuildings().findSite(*m_singleBuildingId);
|
||||
const ConstructionSite* s = findSite(m_sim->getFactoryState(), *m_singleBuildingId);
|
||||
if (s)
|
||||
{
|
||||
// A periodic tick only advances construction progress, so update just the
|
||||
@@ -649,13 +650,13 @@ void SelectedBuildingPanel::buildMulti(const std::vector<BuildingId>& ids)
|
||||
std::map<BuildingType, int> counts;
|
||||
for (BuildingId id : ids)
|
||||
{
|
||||
const Building* b = m_sim->getBuildings().findBuilding(id);
|
||||
const Building* b = findBuilding(m_sim->getFactoryState(), id);
|
||||
if (b)
|
||||
{
|
||||
counts[b->type]++;
|
||||
continue;
|
||||
}
|
||||
const ConstructionSite* s = m_sim->getBuildings().findSite(id);
|
||||
const ConstructionSite* s = findSite(m_sim->getFactoryState(), id);
|
||||
if (s)
|
||||
{
|
||||
counts[s->type]++;
|
||||
@@ -817,7 +818,7 @@ void SelectedBuildingPanel::onClearBelt()
|
||||
std::vector<QPoint> tiles;
|
||||
for (BuildingId id : m_selectedBuildingIds)
|
||||
{
|
||||
const Building* b = m_sim->getBuildings().findBuilding(id);
|
||||
const Building* b = findBuilding(m_sim->getFactoryState(), id);
|
||||
if (b && isBeltSubsystemType(b->type))
|
||||
{
|
||||
for (const QPoint& cell : b->bodyCells)
|
||||
|
||||
Reference in New Issue
Block a user