diff options
author | max-001 <maxsmits21@kpnmail.nl> | 2024-10-16 16:50:59 +0200 |
---|---|---|
committer | max-001 <maxsmits21@kpnmail.nl> | 2024-10-16 16:50:59 +0200 |
commit | 018f6209378a0c30c1e44fba2f80888553b9f67c (patch) | |
tree | 46d79df7053170e13fc28baa1d37bea154ec72b7 /mwe/ecs-homemade/inc/ComponentManager.hpp | |
parent | 5b158d9705f9e912f938f22f2389d6f1dc783b2a (diff) |
Added functionality for scripts
Diffstat (limited to 'mwe/ecs-homemade/inc/ComponentManager.hpp')
-rw-r--r-- | mwe/ecs-homemade/inc/ComponentManager.hpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mwe/ecs-homemade/inc/ComponentManager.hpp b/mwe/ecs-homemade/inc/ComponentManager.hpp index d6da8e8..a120ab1 100644 --- a/mwe/ecs-homemade/inc/ComponentManager.hpp +++ b/mwe/ecs-homemade/inc/ComponentManager.hpp @@ -1,6 +1,6 @@ template <typename T, typename... Args> -void ComponentManager::AddComponent(std::uint32_t id, Args &&... args) { +T& ComponentManager::AddComponent(std::uint32_t id, Args &&... args) { std::type_index type = typeid( T); //Determine the type of T (this is used as the key of the unordered_map<>) @@ -21,6 +21,8 @@ void ComponentManager::AddComponent(std::uint32_t id, Args &&... args) { mComponents[type][id].push_back(std::make_unique<T>(std::forward<Args>( args)...)); //Create a new component of type T using perfect forwarding and store its unique_ptr in the vector<> + + return static_cast<T&>(*mComponents[type][id].back().get()); } template <typename T> |