#pragma once #include #include #include #include "EntityId.h" #include "GameConfig.h" class Simulation; class QLabel; class QComboBox; class QPushButton; class QVBoxLayout; class SelectedBuildingPanel : public QWidget { Q_OBJECT public: SelectedBuildingPanel(Simulation* sim, const GameConfig* config, QWidget* parent = nullptr); public slots: void onSelectionChanged(const std::vector& ids); private slots: void onRecipeChanged(int comboIndex); void onClearBelt(); private: void rebuild(); void clearContent(); void buildEmpty(); void buildSingle(EntityId id); void buildMulti(const std::vector& ids); Simulation* m_sim; const GameConfig* m_config; std::vector m_selection; QVBoxLayout* m_layout; QLabel* m_titleLabel; QComboBox* m_recipeCombo; QPushButton* m_clearBeltBtn; QLabel* m_buffersLabel; EntityId m_singleId; std::string m_currentRecipeId; };