#pragma once #include #include #include #include #include #include #include namespace Game { using clock = std::chrono::steady_clock; class GameManager { public: GameManager() { LOG("Created GameManager"); }; DISABLE_COPY_AND_MOVE(GameManager); ~GameManager() = default; // Start the game logic slave thread, which will update the gamestate and entities; Run as jthread void run(std::stop_token stopToken); void setTargetUpdatesPerSecond(int target) { mTargetUpdatesPerSecond = target; } int getTargetUpdatesPerSecond() { return mTargetUpdatesPerSecond; } private: int mTargetUpdatesPerSecond = 60; clock::time_point mLastUpdate; }; }