diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-27 13:11:56 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-27 13:11:56 +0100 |
commit | d1eed940b8119e95a14f1d08bf26184c7f0a0d8f (patch) | |
tree | b642104f7a0f86b647a85960f2ee48c1fd6382ba /src/crepe/api | |
parent | be5ccbe24086d5d4fb407f268c649dcbc36eda6b (diff) | |
parent | ee632145ee5b2c1f49e0f88dbccd3a888cf9ad3c (diff) |
Merge branch 'max/ecs' of github.com:lonkaars/crepe
Diffstat (limited to 'src/crepe/api')
-rw-r--r-- | src/crepe/api/GameObject.cpp | 6 | ||||
-rw-r--r-- | src/crepe/api/GameObject.h | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/crepe/api/GameObject.cpp b/src/crepe/api/GameObject.cpp index 3c36a21..9ef4682 100644 --- a/src/crepe/api/GameObject.cpp +++ b/src/crepe/api/GameObject.cpp @@ -30,3 +30,9 @@ void GameObject::set_parent(const GameObject & parent) { RefVector<Metadata> parent_metadata = mgr.get_components_by_id<Metadata>(parent.id); parent_metadata.at(0).get().children.push_back(this->id); } + +void GameObject::set_persistent(bool persistent) { + ComponentManager & mgr = this->component_manager; + + mgr.set_persistent(this->id, persistent); +} diff --git a/src/crepe/api/GameObject.h b/src/crepe/api/GameObject.h index fcb8d9a..4cd2bc0 100644 --- a/src/crepe/api/GameObject.h +++ b/src/crepe/api/GameObject.h @@ -58,6 +58,15 @@ public: */ template <typename T, typename... Args> T & add_component(Args &&... args); + /** + * \brief Components will not be deleted if this method is called + * + * This method sets the persistent flag of the GameObject to true. If the persistent + * flag is set to true, the GameObject will not be deleted when the scene is changed. + * + * \param persistent The persistent flag + */ + void set_persistent(bool persistent = true); public: //! The id of the GameObject |