34 lines
		
	
	
	
		
			533 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			533 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <ecs/entity.hpp>
 | |
| #include <ecs/scene.hpp>
 | |
| 
 | |
| namespace YAML {
 | |
| 
 | |
| class Emitter;
 | |
| 
 | |
| }
 | |
| 
 | |
| namespace lt {
 | |
| 
 | |
| class SceneSerializer
 | |
| {
 | |
| public:
 | |
| 	SceneSerializer(const Ref<Scene> &scene);
 | |
| 
 | |
| 	void serialize(const std::string &filePath);
 | |
| 
 | |
| 	auto deserialize(const std::string &file_path) -> bool;
 | |
| 
 | |
| 	void serialize_binary(const std::string &file_path);
 | |
| 
 | |
| 	auto deserialize_binary(const std::string &file_path) -> bool;
 | |
| 
 | |
| private:
 | |
| 	Ref<Scene> m_scene;
 | |
| 
 | |
| 	void serialize_entity(YAML::Emitter &out, Entity entity);
 | |
| };
 | |
| 
 | |
| 
 | |
| } // namespace lt
 |