diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2018-06-22 00:07:37 +0100 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2018-06-22 00:07:37 +0100 |
commit | 774a0acb51b7e97c1f7951fc90ddd51c19527a50 (patch) | |
tree | 290869ae2bf0f41071b234d4339d2b67563d639c /yage/entity/entity.cpp | |
parent | c7838e4fb65546c82314f30502d162953c967fa1 (diff) | |
download | YAGE-774a0acb51b7e97c1f7951fc90ddd51c19527a50.tar.gz YAGE-774a0acb51b7e97c1f7951fc90ddd51c19527a50.zip |
Expanding entity system
Diffstat (limited to 'yage/entity/entity.cpp')
-rw-r--r-- | yage/entity/entity.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/yage/entity/entity.cpp b/yage/entity/entity.cpp index 050514c3..25e8e2d0 100644 --- a/yage/entity/entity.cpp +++ b/yage/entity/entity.cpp @@ -1,5 +1,7 @@ #include "entity.h" +#include "component.h" + #include <algorithm> namespace yage @@ -27,14 +29,23 @@ bool EntityManager::is_valid(Entity entity) const return false; } +EntityManager &EntityManager::add_component(Entity entity, + BaseComponent *component) +{ + auto id = component->getGroup(); + component_masks_[entity] = + component_masks_[entity] | ComponentMask(1 << id); + return *this; +} + Entity EntityManager::update_next_entity() { if (deleted_.empty()) { - return ++next_entity_; + return next_entity_++; } - next_entity_ = deleted_.back(); + Entity ent = deleted_.back(); deleted_.pop_back(); - return next_entity_; + return ent; } } // namespace yage |