From 083fcf24c50753b6f5fa04c5358be783be64407d Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sat, 23 Jun 2018 15:51:19 +0100 Subject: Some more component implementations --- yage/entity/component.cpp | 16 ++++++++++++++++ yage/entity/component.h | 10 +++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) 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 + namespace yage { GroupId BaseComponent::group_id_counter_ = 0; +ComponentGroup &ComponentGroup::add(std::unique_ptr &&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 class Component : public BaseComponent { +private: GroupId getGroup() override; }; class ComponentGroup { public: - std::vector> components_; + typedef std::vector> Container; + + ComponentGroup &add(std::unique_ptr &&component); + Container::iterator begin(); + Container::iterator end(); + +private: + Container components_; }; template -- cgit