From 40d48773a393edadea97e501a4a47cd1746dadbe Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Fri, 15 Jun 2018 20:01:05 +0100 Subject: Adding components with test --- tests/component_test.cpp | 13 +++++++++++++ yage/entity/component.cpp | 6 ++++++ yage/entity/component.h | 17 +++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 tests/component_test.cpp create mode 100644 yage/entity/component.cpp create mode 100644 yage/entity/component.h diff --git a/tests/component_test.cpp b/tests/component_test.cpp new file mode 100644 index 00000000..db42c287 --- /dev/null +++ b/tests/component_test.cpp @@ -0,0 +1,13 @@ +#include + +struct Position { + double x; + double y; + + Position(double x_i, double y_i) : x(x_i), y(y_i) {} +}; + +int main() { + EntityManager em(); + Entity player = em.createEntity(); +} diff --git a/yage/entity/component.cpp b/yage/entity/component.cpp new file mode 100644 index 00000000..83fe4424 --- /dev/null +++ b/yage/entity/component.cpp @@ -0,0 +1,6 @@ +#include "component.h" + +GroupId BaseComponent::getGroup() { + static GroupId group_id = group_id_counter_++; + return group_id; +} diff --git a/yage/entity/component.h b/yage/entity/component.h new file mode 100644 index 00000000..84eb8b54 --- /dev/null +++ b/yage/entity/component.h @@ -0,0 +1,17 @@ +typedef unsigned int GroupId; + +class BaseComponent +{ +protected: + GroupId getGroup(); + +private: + friend class EntityManager; + + static GroupId group_id_counter_; +}; + +template +class Component : public BaseComponent +{ +}; -- cgit