schematic selection dialog

This commit is contained in:
2026-06-13 12:00:05 +02:00
parent 1641189b75
commit 49f7129bd5
25 changed files with 453 additions and 268 deletions

View File

@@ -18,6 +18,7 @@
#include "BuildingSystem.h"
#include "ConfigLoader.h"
#include "GameWorldView.h"
#include "SchematicChoiceDialog.h"
#include "HeaderBar.h"
#include "SelectedBuildingPanel.h"
#include "ShipLayoutBlueprintSerializer.h"
@@ -125,12 +126,12 @@ MainWindow::MainWindow(Simulation* sim, const std::string& configDir, QWidget* p
}
}
registerForEvent();
registerForEvents();
}
MainWindow::~MainWindow()
{
unregisterForEvent();
unregisterForEvents();
}
void MainWindow::resizeEvent(QResizeEvent* event)
@@ -176,6 +177,19 @@ void MainWindow::handleEvent(std::shared_ptr<const BuildingBlocksChangedEvent> e
m_buildButtonGrid->updateAffordability(event->blocks);
}
void MainWindow::handleEvent(std::shared_ptr<const SchematicChoicesAvailableEvent> event)
{
const double prevSpeed = m_gameWorldView->gameSpeed();
m_gameWorldView->setGameSpeed(0.0);
SchematicChoiceDialog dialog(event->choices, this);
dialog.exec();
m_sim->applySchematicChoice(dialog.getChosenIndex());
m_gameWorldView->setGameSpeed(prevSpeed);
}
void MainWindow::onEscapeMenuRequested()
{
const double prevSpeed = m_gameWorldView->gameSpeed();