aboutsummaryrefslogtreecommitdiff
path: root/mwe/ecs-homemade/inc/ComponentManager.hpp
diff options
context:
space:
mode:
authormax-001 <maxsmits21@kpnmail.nl>2024-10-16 16:50:59 +0200
committermax-001 <maxsmits21@kpnmail.nl>2024-10-16 16:50:59 +0200
commit018f6209378a0c30c1e44fba2f80888553b9f67c (patch)
tree46d79df7053170e13fc28baa1d37bea154ec72b7 /mwe/ecs-homemade/inc/ComponentManager.hpp
parent5b158d9705f9e912f938f22f2389d6f1dc783b2a (diff)
Added functionality for scripts
Diffstat (limited to 'mwe/ecs-homemade/inc/ComponentManager.hpp')
-rw-r--r--mwe/ecs-homemade/inc/ComponentManager.hpp4
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>