LkEngine 0.1.2
 
Loading...
Searching...
No Matches
SceneSerializer.h
1#pragma once
2
3#include "LkEngine/Serialization/FileStream.h"
4
5#include "LkEngine/Scene/Scene.h"
6
7#include "LkEngine/Asset/Asset.h"
8
9
10namespace YAML
11{
12 class Emitter;
13 class Node;
14}
15
16namespace LkEngine {
17
19 {
20 public:
21 LSceneSerializer(LScene* InScene);
23 LSceneSerializer() = delete;
24
25 bool Serialize(const std::filesystem::path& Filepath);
26 bool Deserialize(const std::filesystem::path& Filepath);
27
30
31 void SerializeRuntime(const LUUID InSceneHandle);
32 bool DeserializeRuntime(const LUUID InSceneHandle);
33
34 private:
35 bool SerializeToYaml(YAML::Emitter& out);
36 bool DeserializeFromYaml(const std::string& YamlString);
37
38 void SerializeEntity(YAML::Emitter& Out, LEntity Entity);
39 void DeserializeEntities(YAML::Node& EntitiesNode, TObjectPtr<LScene> SceneRef);
40
41 void SerializeEditorCamera(YAML::Emitter& Out, LEditorCamera& EditorCamera);
42 void DeserializeEditorCamera(const YAML::Node& EditorCameraNode, LEditorCamera& EditorCamera);
43
44 public:
45 static std::string FILE_FILTER;
46 private:
47 LScene* Scene = nullptr;
48 bool bIsLoaded = false;
49
51 };
52
53}
Definition EditorCamera.h:32
Definition Entity.h:18
Definition Object.h:46
Definition SceneSerializer.h:19
TObjectPtr< LScene > LoadScene()
Definition SceneSerializer.cpp:126
Definition Scene.h:47
Definition ObjectPtr.h:102
#define LCLASS(Class)
Definition CoreMacros.h:226
Definition Asset.h:11
Definition ImGuiFwd.h:127
Definition UUID.h:13