#pragma once #include #include #include namespace blitz { namespace client { class MainMenuState : public AbstractState, private ImGuiDrawer { public: MainMenuState(std::shared_ptr); ~MainMenuState(); private: Nz::ButtonWidget* m_JoinServerButton; Nz::ButtonWidget* m_CreateServerButton; Nz::ButtonWidget* m_OptionButton; Nz::ButtonWidget* m_QuitButton; std::shared_ptr m_NextState; void LayoutWidgets() override; bool Update(Nz::StateMachine& fsm, Nz::Time elapsedTime) override; void OnRenderImgui() override; void OnJoinServerPressed(); void OnCreateServerPressed(); void OnOptionPressed(); void OnQuitPressed(); }; } // namespace client } // namespace blitz