#include "SceneManager.h" #include "Component.h" #include "Transform.h" #include "Mesh.h" #include "GameObject.h" #include #include void SceneManager::SaveScene(const std::vector> &gameobjects, const std::string &filename) { YAML::Node sceneNode; for (const auto &gameobject : gameobjects) { sceneNode["Entities"].push_back(gameobject->Serialize()); } std::ofstream fout(filename); fout << sceneNode; } void SceneManager::LoadScene(std::vector> &gameobjects, const std::string &filename) { YAML::Node sceneNode = YAML::LoadFile(filename); gameobjects.clear(); if (sceneNode["Entities"]) { for (const auto &gameobjectNode : sceneNode["Entities"]) { int id = gameobjectNode["ID"].as(); std::string name = gameobjectNode["Name"].as(); auto gameobject = std::make_shared(id, name); gameobject->Deserialize(gameobjectNode); gameobjects.push_back(gameobject); } } }