Aller au contenu

Entités

Une entité est un handle ecs_entity_t créé par le monde. Une nouvelle entité est vivante et ne porte aucun composant utilisateur.

ecs_entity_t entity = ecs_new();

ecs_new() réutilise les index d’entités libérés lorsque possible. ecs_new_no_reuse() et ecs::entity::create_no_reuse() allouent toujours un nouvel index maximal. Cette propriété est monotone, pas contiguë : d’autres allocations peuvent toujours créer des trous.

Testez l’état d’un handle issu du même monde :

if (ecs_is_alive(entity)) {
ecs_kill(entity);
}

Tuer une entité retire ses composants, exécute leurs hooks de retrait, la retire de sa table et invalide le handle. Ne passez jamais un ancien handle aux fonctions d’accès après ecs_kill() ou kill().

L’API traite ecs_entity_t comme un handle opaque. SIECS y encode un index et une génération, ce qui permet de détecter un handle devenu obsolète après la destruction et la réutilisation d’un index.

Les bases abstraites et les instances héritées sont décrites dans Héritage.