#pragma once #include "interfaces/command.hpp" #include "interfaces/cursor.hpp" #include "interfaces/input.hpp" #include "interfaces/scene.hpp" #include #include // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class IGame { public: virtual ~IGame() noexcept = default; virtual void on_start() noexcept = 0; virtual void on_update() noexcept = 0; virtual void on_exit() const noexcept = 0; }; using IGameFactory = yacppdic::Factory( const std::shared_ptr &scene, const std::shared_ptr &cursor_controller, const std::shared_ptr user_input_observer)>;