/****************************************************************************** * File - core.cpp * 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. ******************************************************************************/ #include "core.h" #include "Version.h" namespace lunarium { Core* Core::mpInstance = nullptr; Core::Core() : mbIsInit(false) { } Core& Core::GetInstance() { if (!mpInstance) { mpInstance = new Core; } return *mpInstance; } void Core::Shutdown() { if (!mpInstance) return; // Shutdown subsystems delete mpInstance; mpInstance = nullptr; } void Core::Initialize(int argc, char** argv, std::vector& listeners) { mpLog = Logger::GetInstance(); for (unsigned i = 0; i < listeners.size(); i++) { mpLog->AddListener(listeners[i]); } mpLog->Log(LogCategory::CORE, LogLevel::INFO, "Running Lunarium version %s", Version::GetVersion().ToString().c_str()); } bool Core::IsInit() const { return mbIsInit; } const State& Core::GetState() const { return mState; } }