JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
EntityManager.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <cstdint>
7#include <vector>
8
9#include "Core/Ecs/Entity.h"
10
15
16namespace core {
17
31public:
36 [[nodiscard]] Entity create();
37
46 void destroy(Entity entity);
47
53 [[nodiscard]] bool isAlive(Entity entity) const;
54
56 [[nodiscard]] std::size_t aliveCount() const;
57
58private:
60 std::vector<Entity::Generation> _generations;
62 std::vector<bool> _alive;
64 std::vector<Entity::Index> _freeIndices;
66 std::size_t _aliveCount = 0;
67};
68
69} // namespace core
Identifiant d'entité de l'ECS : handle générationnel (index + génération).
Crée, détruit et valide les entités de l'ECS.
Definition EntityManager.h:30
std::vector< Entity::Generation > _generations
Génération courante de chaque index (indexé par Entity::index).
Definition EntityManager.h:60
Entity create()
Crée une nouvelle entité vivante.
Definition EntityManager.cpp:10
std::vector< Entity::Index > _freeIndices
Index libérés disponibles au recyclage.
Definition EntityManager.h:64
std::vector< bool > _alive
Drapeau de vie de chaque index (indexé par Entity::index).
Definition EntityManager.h:62
std::size_t aliveCount() const
Definition EntityManager.cpp:57
bool isAlive(Entity entity) const
Indique si un handle désigne une entité actuellement vivante.
Definition EntityManager.cpp:48
void destroy(Entity entity)
Détruit une entité et libère son index pour recyclage.
Definition EntityManager.cpp:33
std::size_t _aliveCount
Nombre d'entités vivantes.
Definition EntityManager.h:66
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
Handle générationnel identifiant une entité de l'ECS.
Definition Entity.h:24