// Copyright (c) 2025 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "time/Time.hpp" #include "console/Console.hpp" #include "display/Display.hpp" #include "input/Input.hpp" #include "asset/AssetManager.hpp" namespace Dawn { struct Engine { private: static Engine* instance; bool_t exitRequested = false; public: Time time; Console console; Display display; Input input; AssetManager assetManager; /** * Constructor for the Dawn engine. */ Engine(); /** * Check if an exit has been requested. * * @return True if an exit has been requested, false otherwise. */ bool_t isExitRequested() const; /** * Update the engine state. */ void update(void); /** * Destructor for the Dawn engine. */ ~Engine(); }; }