diff options
Diffstat (limited to 'yage/entity/entitymanager.cpp')
-rw-r--r-- | yage/entity/entitymanager.cpp | 34 |
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 |