60 template <
typename T>
void
62 static_assert(std::is_base_of<Component, T>::value,
"T must be derived from Component");
63 m_components.push_back(component.template dynamic_pointer_cast<Component>());
76 if (specificComponent) {
77 return specificComponent;
Declara la API de Component dentro del subsistema ECS.
Declara la API de Prerequisites dentro del subsistema Core.
Clase TSharedPointer para manejar la gestión de memoria compartida.
virtual void destroy()=0
Método virtual puro para destruir el componente.
virtual void init()=0
Initialize the entity with a device context.
std::vector< EU::TSharedPointer< Component > > m_components
void addComponent(EU::TSharedPointer< T > component)
Agrega un componente a la entidad.
virtual void render(DeviceContext &deviceContext)=0
Método virtual puro para renderizar el componente.
virtual void update(float deltaTime, DeviceContext &deviceContext)=0
Método virtual puro para actualizar el componente.
EU::TSharedPointer< T > getComponent()
Obtiene un componente de la entidad por su tipo.
virtual ~Entity()=default
Destructor virtual.