#include "engine.hpp" #include namespace basalt::shared::engine { IEngine::IEngine() : config(), status(EngineStatus::Ready) {} IEngine::~IEngine() { if (this->status != EngineStatus::Stop) { this->Shutdown(); } } guid::Guid IEngine::GetGuid() const { throw std::logic_error("unimplemented function"); } void IEngine::Startup(EngineConfig &&config) { if (this->status != EngineStatus::Ready) throw std::runtime_error("unexpected engine status"); this->config = std::move(config); this->status = EngineStatus::Running; } bool IEngine::Tick() { if (this->status != EngineStatus::Running) throw std::runtime_error("unexpected engine status"); return false; } void IEngine::Shutdown() { if (this->status != EngineStatus::Running) throw std::runtime_error("unexpected engine status"); this->status = EngineStatus::Stop; } }