Editor/MovieMaker/Session/Recording.cs
using Sandbox.MovieMaker;

namespace Editor.MovieMaker;

#nullable enable
public sealed partial class Session
{
	private bool _isRecording;

	public bool IsRecording
	{
		get => EditMode is { AllowRecording: true } && _isRecording;

		set
		{
			if ( value ) StartRecording();
			else StopRecording();
		}
	}

	private void StartRecording()
	{
		// TODO: dedicated recording mode?
		SetEditMode( typeof(MotionEditMode) );

		if ( EditMode is not { AllowRecording: true } editMode ) return;
		if ( _isRecording ) return;

		_isRecording = editMode.StartRecording();
	}

	private void StopRecording()
	{
		if ( !_isRecording ) return;

		_isRecording = false;
		EditMode?.StopRecording();
	}
}