show ports

This commit is contained in:
2026-04-20 21:37:41 +02:00
parent 50d505c886
commit 2991a9584f
4 changed files with 95 additions and 7 deletions

View File

@@ -173,7 +173,7 @@ EntityId BuildingSystem::place(BuildingType type, QPoint anchor,
{
m_belts.placeBelt(anchor, rotation);
m_tileOccupancy[{anchor.x(), anchor.y()}] = id;
m_beltEntities[id] = BeltEntry{anchor, BuildingType::Belt};
m_beltEntities[id] = BeltEntry{anchor, BuildingType::Belt, rotation, rotation};
return id;
}
@@ -187,7 +187,7 @@ EntityId BuildingSystem::place(BuildingType type, QPoint anchor,
const Rotation outB = mask.outputPorts[1].direction;
m_belts.placeSplitter(anchor, outA, outB);
m_tileOccupancy[{anchor.x(), anchor.y()}] = id;
m_beltEntities[id] = BeltEntry{anchor, BuildingType::Splitter};
m_beltEntities[id] = BeltEntry{anchor, BuildingType::Splitter, outA, outB};
return id;
}
@@ -663,9 +663,11 @@ std::vector<BuildingSystem::BeltTileInfo> BuildingSystem::allBeltTiles() const
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;
info.id = kv.first;
info.tile = kv.second.tile;
info.type = kv.second.type;
info.directionA = kv.second.directionA;
info.directionB = kv.second.directionB;
result.push_back(info);
}
return result;

View File

@@ -59,7 +59,9 @@ public:
{
EntityId id;
QPoint tile;
BuildingType type; // Belt or Splitter
BuildingType type; // Belt or Splitter
Rotation directionA; // Belt: its direction; Splitter: first output
Rotation directionB; // Splitter: second output; Belt: same as directionA
};
const Building* findBuilding(EntityId id) const;
@@ -104,7 +106,9 @@ private:
struct BeltEntry
{
QPoint tile;
BuildingType type; // Belt or Splitter
BuildingType type; // Belt or Splitter
Rotation directionA; // Belt: its direction; Splitter: first output
Rotation directionB; // Splitter: second output; Belt: same as directionA
};
const BuildingDef* findBuildingDef(BuildingType type) const;