28#include "Entt/entt.hpp"
39 template<
typename T,
typename... Args>
43 T& component = m_Scene->m_Registry.emplace<
T>(m_EntityHandle, std::forward<Args>(args)...);
47 template<
typename T,
typename... Args>
50 T& component = m_Scene->m_Registry.emplace_or_replace<
T>(m_EntityHandle, std::forward<Args>(args)...);
58 return m_Scene->m_Registry.get<
T>(m_EntityHandle);
64 return m_Scene->m_Registry.all_of<
T>(m_EntityHandle);
71 m_Scene->m_Registry.remove<
T>(m_EntityHandle);
74 operator bool()
const {
return m_EntityHandle != entt::null; }
75 operator entt::entity()
const {
return m_EntityHandle; }
76 operator uint32_t()
const {
return (
u32)m_EntityHandle; }
83 return m_EntityHandle == other.m_EntityHandle && m_Scene == other.m_Scene;
88 return !(*
this == other);
92 entt::entity m_EntityHandle = entt::null;
93 Scene* m_Scene =
nullptr;
#define ASSERT(x)
Definition Assert.h:37
unsigned __int32 u32
Unsigned integer 32 bit type.
Definition BasicTypes.h:55
T & GetComponent()
Definition Entity.h:55
T & AddComponent(Args &&... args)
Definition Entity.h:40
Entity(const Entity &other)=default
const std::string & GetName()
Definition Entity.h:79
T & AddOrReplaceComponent(Args &&... args)
Definition Entity.h:48
void RemoveComponent() const
Definition Entity.h:68
bool operator==(const Entity &other) const
Definition Entity.h:81
bool HasComponent() const
Definition Entity.h:62
UUID GetUUID()
Definition Entity.h:78
bool operator!=(const Entity &other) const
Definition Entity.h:86
Scene class.
Definition Scene.h:43
Definition Components.h:33