Fixed Serializer

- Fixed Serializer skipping entities with id 0
- EditorLayer now serializes the scene upon destruction
This commit is contained in:
Light 2021-10-07 03:26:36 +03:30
parent 8447e5dab2
commit 924875d12e
4 changed files with 2006 additions and 2489 deletions

View file

@ -91,7 +91,7 @@ namespace Light {
m_Scene->m_Registry.each([&](auto entityID) m_Scene->m_Registry.each([&](auto entityID)
{ {
Entity entity = { entityID, m_Scene.get() }; Entity entity = { entityID, m_Scene.get() };
if (!entity) if (!entity.IsValid())
return; return;
SerializeEntity(out, entity); SerializeEntity(out, entity);

File diff suppressed because it is too large Load diff

View file

@ -20,6 +20,12 @@ namespace Light {
m_CameraEntity = m_Scene->GetEntityByTag("Game Camera"); m_CameraEntity = m_Scene->GetEntityByTag("Game Camera");
} }
EditorLayer::~EditorLayer()
{
SceneSerializer serializer(m_Scene);
serializer.Serialize("../../Mirror/res/Scenes/editorlayer.yaml");
}
void EditorLayer::OnUpdate(float deltaTime) void EditorLayer::OnUpdate(float deltaTime)
{ {
m_Scene->OnUpdate(deltaTime); m_Scene->OnUpdate(deltaTime);

View file

@ -29,6 +29,7 @@ namespace Light {
public: public:
EditorLayer(const std::string& name); EditorLayer(const std::string& name);
~EditorLayer();
void OnUpdate(float deltaTime) override; void OnUpdate(float deltaTime) override;