#include "engine.hpp" #include namespace Basalt::Shared::Engine { IEngine::IEngine() : config(), status(EngineStatus::Ready) {} IEngine::~IEngine() { if (this->status != EngineStatus::Stop) { this->Shutdown(); } } 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; } void IEngine::Tick() { if (this->status != EngineStatus::Running) throw std::runtime_error("unexpected engine status"); } void IEngine::Shutdown() { if (this->status != EngineStatus::Running) throw std::runtime_error("unexpected engine status"); this->status = EngineStatus::Stop; } } // namespace Basalt::Shared::Engine