aboutsummaryrefslogtreecommitdiffstats
path: root/yage/entity/entitymanager.cpp
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-02-13 19:14:33 +0000
committerYann Herklotz <ymherklotz@gmail.com>2018-02-13 19:14:33 +0000
commit49af8b16ae3f9e6579656ed10f815e9c465557d0 (patch)
tree1dff4aea6a59c466ea6a6f15ad7f5e2ac69f5b37 /yage/entity/entitymanager.cpp
parente9bd903761605c7619a235edddf07c3a0b963968 (diff)
downloadYAGE-49af8b16ae3f9e6579656ed10f815e9c465557d0.tar.gz
YAGE-49af8b16ae3f9e6579656ed10f815e9c465557d0.zip
[entity] Starting work on entity system.
Diffstat (limited to 'yage/entity/entitymanager.cpp')
-rw-r--r--yage/entity/entitymanager.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/yage/entity/entitymanager.cpp b/yage/entity/entitymanager.cpp
new file mode 100644
index 00000000..332ed9b8
--- /dev/null
+++ b/yage/entity/entitymanager.cpp
@@ -0,0 +1,34 @@
+/** ---------------------------------------------------------------------------
+ * @file: entitymanager.cpp
+ *
+ * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com>
+ * MIT License, see LICENSE file for more details.
+ * ----------------------------------------------------------------------------
+ */
+
+#include "entitymanager.h"
+
+namespace yage
+{
+
+EntityManager::EntityManager(Space *space) : next_handle_(0), space_(space) {}
+
+EntityManager::EntityManager(Space *space, std::size_t n)
+ : next_handle_(0), space_(space)
+{
+ entities_.reserve(n);
+}
+
+unsigned EntityManager::createEntity()
+{
+ return createEntityInstance().getHandle();
+}
+
+Entity EntityManager::createEntityInstance()
+{
+ Entity entity(next_handle_++);
+ entities_.push_back(entity);
+ return entity;
+}
+
+} // namespace yage