#pragma once #include class Scene; class Entity { public: Entity() = default; Entity(entt::entity e, Scene* scene); Entity(const Entity& other) = default; template T& AddComponent() { return m_scene->m_registry.emplace(m_entity); } template T* GetComponent() { return m_scene->m_registry.try_get(m_entity); } private: entt::entity m_entity; Scene* m_scene; };