Class ComponentManager
Defined in File componentManager.h
Nested Relationships
Nested Types
Class Documentation
-
class ComponentManager
Менеджер для управления компонентами сущностей
Обеспечивает хранение, добавление, удаление и поиск компонентов
Public Functions
-
ComponentManager() = default
-
template<typename T>
inline bool addComponent(Entity entityId, T component) Добавляет компонент к сущности
Создает копию компонента и связывает его с сущностью
- Параметры шаблона:
T – Тип компонента
- Параметры:
entityId – Идентификатор сущности
component – Компонент для добавления
- Результат:
true если компонент успешно добавлен, false в противном случае
-
template<typename T>
inline bool removeComponent(Entity entityId) Удаляет компонент у сущности
- Параметры шаблона:
T – Тип компонента
- Параметры:
entityId – Идентификатор сущности
- Результат:
true если компонент существовал и был удален, false в противном случае
-
template<typename T>
inline T *getComponent(Entity entityId) Получает компонент сущности
- Параметры шаблона:
T – Тип компонента
- Параметры:
entityId – Идентификатор сущности
- Результат:
Указатель на компонент или nullptr если компонент не найден
-
template<typename T>
inline const std::set<Entity> &getEntitiesWith() const Получает все сущности, имеющие компонент указанного типа
- Параметры шаблона:
T – Тип компонента
- Результат:
Константная ссылка на множество сущностей с компонентом
-
template<typename ...ComponentTypes>
inline std::set<Entity> getEntitiesWithAll() const Получает все сущности, имеющие все указанные типы компонентов
Выполняет пересечение множеств сущностей для каждого типа компонента
- Параметры шаблона:
ComponentTypes – Типы компонентов для поиска
- Результат:
Множество сущностей, содержащих все запрошенные компоненты
-
ComponentManager() = default