diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2018-06-23 15:51:19 +0100 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2018-06-23 15:51:19 +0100 |
commit | 083fcf24c50753b6f5fa04c5358be783be64407d (patch) | |
tree | e6984db9c7dc26ac95327fb7c26abd7efd52b969 | |
parent | 9f92cab6b884711ca8be050b500a2880a955f001 (diff) | |
download | YAGE-083fcf24c50753b6f5fa04c5358be783be64407d.tar.gz YAGE-083fcf24c50753b6f5fa04c5358be783be64407d.zip |
Some more component implementations
-rw-r--r-- | yage/entity/component.cpp | 16 | ||||
-rw-r--r-- | yage/entity/component.h | 10 |
2 files changed, 25 insertions, 1 deletions
diff --git a/yage/entity/component.cpp b/yage/entity/component.cpp index eba2ad0a..4c0eae82 100644 --- a/yage/entity/component.cpp +++ b/yage/entity/component.cpp @@ -1,8 +1,24 @@ #include "component.h" +#include <memory> + namespace yage { GroupId BaseComponent::group_id_counter_ = 0; +ComponentGroup &ComponentGroup::add(std::unique_ptr<BaseComponent> &&component) +{ + components_.push_back(std::move(component)); + return *this; +} + +ComponentGroup::Container::iterator ComponentGroup::begin() { + return components_.begin(); +} + +ComponentGroup::Container::iterator ComponentGroup::end() { + return components_.end(); +} + } // namespace yage diff --git a/yage/entity/component.h b/yage/entity/component.h index a21409ff..3f2b3a81 100644 --- a/yage/entity/component.h +++ b/yage/entity/component.h @@ -28,13 +28,21 @@ private: template <typename T> class Component : public BaseComponent { +private: GroupId getGroup() override; }; class ComponentGroup { public: - std::vector<std::unique_ptr<BaseComponent>> components_; + typedef std::vector<std::unique_ptr<BaseComponent>> Container; + + ComponentGroup &add(std::unique_ptr<BaseComponent> &&component); + Container::iterator begin(); + Container::iterator end(); + +private: + Container components_; }; template <typename T> |