#include #include #include #include namespace sophia { Scene::Scene() {} Scene::~Scene() { log::trace("destroying sophia::Scene"); } Entity Scene::createEntity(const std::string& name) { Entity entity{this->registry.create(), this}; entity.addComponent(name.empty() ? "Entity" : name); entity.addComponent(); return entity; } Entity Scene::createCamera(const std::string& name) { Entity camera = createEntity(name); camera.addComponent(); if (this->activeCamera == entt::null) { this->activeCamera = camera; } return camera; } Entity Scene::getActiveCamera() { if (this->activeCamera == entt::null) { return {}; } return {this->activeCamera, this}; } void Scene::setActiveCamera(Entity camera) { this->activeCamera = camera; } void Scene::destroyEntity(Entity entity) { if (this->activeCamera == entity) { this->activeCamera = entt::null; } this->registry.destroy(entity); } } // namespace sophia