light/modules/ecs/public/serializer.hpp

35 lines
533 B
C++
Raw Normal View History

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>
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:
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