2025-07-05 13:28:41 +03:30
|
|
|
#pragma once
|
|
|
|
|
2025-07-11 01:16:52 +03:30
|
|
|
#include <ecs/entity.hpp>
|
|
|
|
#include <ecs/scene.hpp>
|
2025-07-11 02:18:27 +03:30
|
|
|
|
|
|
|
namespace YAML {
|
|
|
|
|
|
|
|
class Emitter;
|
|
|
|
|
|
|
|
}
|
2025-07-05 13:28:41 +03:30
|
|
|
|
2025-07-11 00:05:48 +03:30
|
|
|
namespace lt {
|
2025-07-05 13:28:41 +03:30
|
|
|
|
|
|
|
class SceneSerializer
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
SceneSerializer(const Ref<Scene> &scene);
|
|
|
|
|
2025-07-06 16:52:50 +03:30
|
|
|
void serialize(const std::string &filePath);
|
2025-07-05 16:07:51 +03:30
|
|
|
|
2025-07-06 14:02:50 +03:30
|
|
|
auto deserialize(const std::string &file_path) -> bool;
|
2025-07-05 13:28:41 +03:30
|
|
|
|
2025-07-06 14:02:50 +03:30
|
|
|
void serialize_binary(const std::string &file_path);
|
2025-07-05 13:28:41 +03:30
|
|
|
|
2025-07-06 14:02:50 +03:30
|
|
|
auto deserialize_binary(const std::string &file_path) -> bool;
|
2025-07-05 13:28:41 +03:30
|
|
|
|
|
|
|
private:
|
2025-07-05 14:23:01 +03:30
|
|
|
Ref<Scene> m_scene;
|
2025-07-05 16:07:51 +03:30
|
|
|
|
|
|
|
void serialize_entity(YAML::Emitter &out, Entity entity);
|
2025-07-05 13:28:41 +03:30
|
|
|
};
|
|
|
|
|
|
|
|
|
2025-07-11 00:05:48 +03:30
|
|
|
} // namespace lt
|