fix belts were not drawn
This commit is contained in:
@@ -656,6 +656,21 @@ std::vector<ConstructionSite> BuildingSystem::allSites() const
|
||||
m_constructionQueue.end());
|
||||
}
|
||||
|
||||
std::vector<BuildingSystem::BeltTileInfo> BuildingSystem::allBeltTiles() const
|
||||
{
|
||||
std::vector<BeltTileInfo> result;
|
||||
result.reserve(m_beltEntities.size());
|
||||
for (const std::map<EntityId, BeltEntry>::value_type& kv : m_beltEntities)
|
||||
{
|
||||
BeltTileInfo info;
|
||||
info.id = kv.first;
|
||||
info.tile = kv.second.tile;
|
||||
info.type = kv.second.type;
|
||||
result.push_back(info);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool BuildingSystem::isTileOccupied(QPoint tile) const
|
||||
{
|
||||
return m_tileOccupancy.count({tile.x(), tile.y()}) > 0;
|
||||
|
||||
@@ -55,10 +55,18 @@ public:
|
||||
void tickBeltPush();
|
||||
|
||||
// -- Queries -------------------------------------------------------------
|
||||
struct BeltTileInfo
|
||||
{
|
||||
EntityId id;
|
||||
QPoint tile;
|
||||
BuildingType type; // Belt or Splitter
|
||||
};
|
||||
|
||||
const Building* findBuilding(EntityId id) const;
|
||||
const ConstructionSite* findSite(EntityId id) const;
|
||||
std::vector<Building> allBuildings() const;
|
||||
std::vector<ConstructionSite> allSites() const;
|
||||
std::vector<BeltTileInfo> allBeltTiles() const;
|
||||
bool isTileOccupied(QPoint tile) const;
|
||||
|
||||
// Find nearest operational building of the given type; nullptr if none.
|
||||
|
||||
Reference in New Issue
Block a user