Yet Another Game Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
entity.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 
5 #include "component.h"
6 
7 namespace yage
8 {
9 
14 typedef unsigned int Entity;
15 
22 {
23 public:
26  bool is_valid(Entity entity) const;
27  EntityManager &add_component(Entity entity, BaseComponent *component);
28 
29 private:
30  Entity update_next_entity();
31 
32  Entity next_entity_ = 0;
33 
34 public:
35  std::vector<ComponentGroup> component_group_;
36  std::vector<ComponentMask> component_masks_;
37  std::vector<Entity> deleted_;
38 };
39 
40 } // namespace yage
EntityManager & add_component(Entity entity, BaseComponent *component)
Definition: entity.cpp:32
Definition: component.h:18
std::vector< ComponentGroup > component_group_
Definition: entity.h:35
Has to keep track of all the different entities and their current state.
Definition: entity.h:21
std::vector< Entity > deleted_
Definition: entity.h:37
std::vector< ComponentMask > component_masks_
Definition: entity.h:36
Entity create_entity()
Definition: entity.cpp:10
unsigned int Entity
The entity is currently just an unsigned integer, which may change to a class in the future...
Definition: entity.h:14
EntityManager & delete_entity(Entity entity)
Definition: entity.cpp:17
bool is_valid(Entity entity) const
Definition: entity.cpp:23