aboutsummaryrefslogtreecommitdiffstats
path: root/yage/entity
diff options
context:
space:
mode:
Diffstat (limited to 'yage/entity')
-rw-r--r--yage/entity/component.cpp6
-rw-r--r--yage/entity/component.h17
2 files changed, 23 insertions, 0 deletions
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 <typename T>
+class Component : public BaseComponent
+{
+};