Registry
Manage entities and their associated components
class Registry {
public:
StorageComponents<Component> ®ister_component();
StorageComponents<Component> &get_components();
StorageComponents<Component> const &get_components() const;
bool hasComponent(entity_t const &entity);
Component &getComponent(entity_t const &entity);
entity_t spawn_entity(std::size_t zIndex = 0, bool state = true);
void disableEntity(entity_t const &entity);
void enableEntity(entity_t const &entity);
bool isEntityEnabled(entity_t const &entity);
entity_t entity_from_index(std::size_t idx);
bool isEntityExist(entity_t entity);
void kill_entity(entity_t const &e);
typename StorageComponents<Component>::reference_type add_component(entity_t const &to, Component &&component);
typename StorageComponents<Component>::reference_type emplace_component(entity_t const &to, Params &&...params);
void modify_component(entity_t const &entity, std::function<void(Component&)> callback);
void remove_component(entity_t const &from);
std::multimap<size_t, entity_t> const &get_entity_sprite_order() const;
private:
std::multimap<size_t, entity_t> _entity_sprite_order;
std::unordered_map<std::type_index, std::any> _components_arrays;
std::map<entity_t, std::pair<bool, size_t>> _entity_to_index;
entity_t _next_entity_id = 0;
std::vector<entity_t> _entities;
};Component Management Methods
Entity Management Methods
Last updated