add splitter filters to ui

This commit is contained in:
2026-04-25 21:27:39 +02:00
parent b21fc352b4
commit 134f23d69b
4 changed files with 177 additions and 0 deletions

View File

@@ -89,6 +89,22 @@ void BeltSystem::setSplitterFilters(QPoint tile,
it->second.filterB = filterB;
}
std::optional<BeltSystem::SplitterInfo> BeltSystem::getSplitterInfo(QPoint tile) const
{
const std::map<std::pair<int, int>, SplitterTile>::const_iterator it =
m_splitters.find(key(tile));
if (it == m_splitters.end())
{
return std::nullopt;
}
return SplitterInfo{
it->second.outputA,
it->second.outputB,
it->second.filterA,
it->second.filterB
};
}
// ---------------------------------------------------------------------------
// Port interface
// ---------------------------------------------------------------------------

View File

@@ -52,6 +52,15 @@ public:
const std::vector<ItemType>& filterA,
const std::vector<ItemType>& filterB);
struct SplitterInfo
{
Rotation outputA;
Rotation outputB;
std::vector<ItemType> filterA;
std::vector<ItemType> filterB;
};
std::optional<SplitterInfo> getSplitterInfo(QPoint tile) const;
// -- Port interface (buildings <-> belts) --------------------------------
// port.tile = the belt tile adjacent to the building
// port.direction = direction items flow on that tile