aboutsummaryrefslogtreecommitdiffstats
path: root/yage/engine/entitymanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'yage/engine/entitymanager.cpp')
-rw-r--r--yage/engine/entitymanager.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/yage/engine/entitymanager.cpp b/yage/engine/entitymanager.cpp
new file mode 100644
index 00000000..332ed9b8
--- /dev/null
+++ b/yage/engine/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