aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/GameObject.cpp
diff options
context:
space:
mode:
authormax-001 <maxsmits21@kpnmail.nl>2024-11-06 09:52:05 +0100
committermax-001 <maxsmits21@kpnmail.nl>2024-11-06 09:52:05 +0100
commitf4083c161a1176c900629ba61d96843645fc7be5 (patch)
tree0c136c9af142a4f7018a7441ec879b3b41da02c0 /src/crepe/api/GameObject.cpp
parentbf4c172f2709adf5a6f210bae60e16972e8decad (diff)
parent6ce2c14077e3e6dd01398d582b42dc50e9141f54 (diff)
Merge remote-tracking branch 'origin/master' into max/scenes
Diffstat (limited to 'src/crepe/api/GameObject.cpp')
-rw-r--r--src/crepe/api/GameObject.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/crepe/api/GameObject.cpp b/src/crepe/api/GameObject.cpp
index 2592d2d..8a1a235 100644
--- a/src/crepe/api/GameObject.cpp
+++ b/src/crepe/api/GameObject.cpp
@@ -6,20 +6,21 @@
using namespace crepe;
using namespace std;
-GameObject::GameObject(uint32_t id, std::string name, std::string tag,
- Point position, double rotation, double scale)
- : id(id) {
+GameObject::GameObject(uint32_t id, std::string name, std::string tag, const Point & position, double rotation, double scale) : id(id) {
ComponentManager & mgr = ComponentManager::get_instance();
mgr.add_component<Transform>(this->id, position, rotation, scale);
mgr.add_component<Metadata>(this->id, name, tag);
}
-void GameObject::set_parent(GameObject & parent) {
+void GameObject::set_parent(const GameObject & parent) {
auto & mgr = ComponentManager::get_instance();
- vector<reference_wrapper<Metadata>> thisMetadata
- = mgr.get_components_by_id<Metadata>(this->id);
- vector<reference_wrapper<Metadata>> parentMetadata
- = mgr.get_components_by_id<Metadata>(parent.id);
- thisMetadata.at(0).get().parent = parent.id;
- parentMetadata.at(0).get().children.push_back(this->id);
+
+ // set parent on own Metadata component
+ vector<reference_wrapper<Metadata>> this_metadata = mgr.get_components_by_id<Metadata>(this->id);
+ this_metadata.at(0).get().parent = parent.id;
+
+ // add own id to children list of parent's Metadata component
+ vector<reference_wrapper<Metadata>> parent_metadata = mgr.get_components_by_id<Metadata>(parent.id);
+ parent_metadata.at(0).get().children.push_back(this->id);
}
+