#pragma once #include "EditorCore.hpp" #include "Player.hpp" #include "PodVector.hpp" #include "World.hpp" #define GLFW_INCLUDE_NONE #include #include #include #include #include using KeyCaptureCallback = std::function; class App { private: std::deque mKeyCaptureCallbacks; PodVector mPlayers; std::unique_ptr mEditor; std::unique_ptr mCurrentWorld; bool mEditorShown = true; bool mInitialized = false; public: void Init(); void Shutdown(); // Do ImGui calls void Show(); // Do regular calls void Update(); void Draw(); void HandleMouse(int button, int action); void HandleMouseMotion(double xOff, double yOff); void HandleKey(GLFWkeyboard* keyboard, int key, int action); void PushKeyCaptureCallback(KeyCaptureCallback callback); };