fix: demolish did not return blocks

This commit is contained in:
2026-04-21 21:16:10 +02:00
parent 4c7b2fdcee
commit 4f27c8f3a9
3 changed files with 9 additions and 1 deletions

View File

@@ -447,6 +447,11 @@ EntityId Simulation::tryPlaceBuilding(BuildingType type, QPoint anchor, Rotation
return m_buildingSystem->place(type, anchor, rotation, m_currentTick);
}
void Simulation::demolish(EntityId id)
{
m_buildingBlocksStock += m_buildingSystem->demolish(id);
}
BuildingSystem& Simulation::buildings()
{
return *m_buildingSystem;

View File

@@ -55,6 +55,9 @@ public:
// Returns the new entity id, or kInvalidEntityId if blocks are insufficient.
EntityId tryPlaceBuilding(BuildingType type, QPoint anchor, Rotation rotation);
// Demolishes the building with the given id and refunds building blocks.
void demolish(EntityId id);
BuildingSystem& buildings();
const BuildingSystem& buildings() const;
BeltSystem& belts();

View File

@@ -958,7 +958,7 @@ void GameWorldView::mousePressEvent(QMouseEvent* event)
|| b->type == BuildingType::PlayerDefenceStation);
if (!protected_)
{
m_sim->buildings().demolish(hovered);
m_sim->demolish(hovered);
m_demolishHoverId = kInvalidEntityId;
}
}