Class Scene

Class Documentation

class Scene

Основной класс сцены, объединяющий менеджеры сущностей, компонентов и систем

Координирует работу всех подсистем ECS (Entity-Component-System)

Public Functions

Scene() = default
Entity createEntity()

Создает новую сущность на сцене

Результат:

Идентификатор созданной сущности

bool destroyEntity(Entity entityId)

Удаляет сущность со сцены

Удаляет все компоненты сущности перед ее уничтожением

Параметры:

entityId – Идентификатор сущности для удаления

Результат:

true если сущность успешно удалена

void enableSystem(SystemId systemId)

Включает систему на сцене

Параметры:

systemId – Идентификатор системы для включения

void disableSystem(SystemId systemId)

Выключает систему на сцене

Параметры:

systemId – Идентификатор системы для выключения

inline void update(float deltaTime)

Обновляет все активные системы сцены

Параметры:

deltaTime – Время, прошедшее с предыдущего обновления

template<typename T>
inline bool addComponent(Entity entityId, T component)

Добавляет компонент к сущности на сцене

Параметры шаблона:

T – Тип компонента

Параметры:
  • entityId – Идентификатор сущности

  • component – Компонент для добавления

Результат:

true если компонент успешно добавлен

template<typename T>
inline bool removeComponent(Entity entityId)

Удаляет компонент у сущности на сцене

Параметры шаблона:

T – Тип компонента

Параметры:

entityId – Идентификатор сущности

Результат:

true если компонент существовал и был удален

template<typename T>
inline T *getComponent(Entity entityId)

Получает компонент сущности

Параметры шаблона:

T – Тип компонента

Параметры:

entityId – Идентификатор сущности

Результат:

Указатель на компонент или nullptr если не найден

template<typename T>
inline std::set<Entity> &getEntitiesWith()

Получает все сущности, имеющие компонент указанного типа

Параметры шаблона:

T – Тип компонента

Результат:

Ссылка на множество сущностей с компонентом

template<typename ...ComponentTypes>
inline std::set<Entity> getEntitiesWithAll()

Получает сущности, имеющие все указанные типы компонентов

Параметры шаблона:

ComponentTypes – Типы компонентов для поиска

Результат:

Множество сущностей, содержащих все запрошенные компоненты

template<typename T, typename ...Args>
inline SystemId registerSystem(Args&&... args)

Регистрирует новую систему на сцене

Параметры шаблона:
  • T – Тип системы (должен наследоваться от ISystem)

  • Args – Типы аргументов для конструктора системы

Параметры:

args – Аргументы для передачи в конструктор системы

Результат:

Идентификатор зарегистрированной системы