/****************************************************************************** * File - core.h * Author - Joey Pollack * Date - 2021/08/30 (y/m/d) * Mod Date - 2021/08/30 (y/m/d) * Description - The Core Engine Class. Manages the engine components. ******************************************************************************/ #ifndef CORE_H_ #define CORE_H_ #include "state.h" #include namespace lunarium { class core { public: static core& GetInstance(); static void Shutdown(); void Initialize(const char* args, std::vector& listeners); bool IsInit() const; const State& GetState() const; private: // DATA static core* mpInstance; bool mbIsInit; State mState; Logger* mpLog; private: // HIDDEN METHODS core(); core(const core&) = delete; core& operator=(const core&) = delete; }; } #endif // CORE_H_