#pragma once #include "EditorRuntimeMode.h" #include "SceneSnapshot.h" #include #include namespace XCEngine { namespace Editor { class IEditorContext; class PlaySessionController { public: void Attach(IEditorContext& context); void Detach(IEditorContext& context); void Update(IEditorContext& context, float deltaTime); bool StartPlay(IEditorContext& context); bool StopPlay(IEditorContext& context); bool PausePlay(IEditorContext& context); private: uint64_t m_playStartRequestedHandlerId = 0; uint64_t m_playStopRequestedHandlerId = 0; uint64_t m_playPauseRequestedHandlerId = 0; SceneSnapshot m_editorSnapshot = {}; XCEngine::Components::RuntimeLoop m_runtimeLoop; }; } // namespace Editor } // namespace XCEngine