#include "Prefab.h" #include "src/Scene/Components/ParentComponent.h" namespace Nuake { Ref Prefab::CreatePrefabFromEntity(Entity entity) { Ref prefab = CreateRef(); ParentComponent parentC = entity.GetComponent(); prefab->EntityWalker(entity); prefab->Root = entity; return prefab; } Ref Prefab::New(const std::string& path) { Ref newPrefab = CreateRef(); newPrefab->Path = path; if (FileSystem::FileExists(path, false)) { std::string prefabTextContent = FileSystem::ReadFile(path); newPrefab->Deserialize(json::parse(prefabTextContent)); } return newPrefab; } void Prefab::EntityWalker(Entity entity) { Root = entity; entity.GetComponent().IsPrefab = true; Entities.push_back(entity); for (const Entity& e : entity.GetComponent().Children) { EntityWalker(e); } } }