Editor/Events.Scene.cs
namespace Sandbox;

public static partial class Event
{
	/// <summary>
	/// Events for scenes.
	/// </summary>
	public static class Scene
	{
		/// <summary>
		/// Invoked when you click the play button.
		/// </summary>
		public sealed class StartPlayAttribute() : EventAttribute( "scene.startplay" );

		/// <summary>
		/// Invoked when the scene enters play mode.
		/// </summary>
		public sealed class PlayAttribute() : EventAttribute( "scene.play" );

		/// <summary>
		/// Invoked when the scene exits play mode.
		/// </summary>
		public sealed class StopAttribute() : EventAttribute( "scene.stop" );

		/// <summary>
		/// Invoked every second the session has unsaved changes.
		/// </summary>
		public sealed class DirtyAttribute() : EventAttribute( "scene.session.save" );

		/// <summary>
		/// Invoked before a scene is saved.
		/// <list type="table">
		///		<em>Arguments:</em>
		///		<item>
		///			<term><see cref="Sandbox.Scene"/></term>
		///			<description>The scene that is being saved.</description>
		///		</item>
		///	</list>
		/// </summary>
		public sealed class BeforeSavedAttribute() : EventAttribute( "scene.beforesave" );

		/// <summary>
		/// Invoked when a scene is saved.
		/// <list type="table">
		///		<em>Arguments:</em>
		///		<item>
		///			<term><see cref="Sandbox.Scene"/></term>
		///			<description>The scene that is being saved.</description>
		///		</item>
		///	</list>
		/// </summary>
		public sealed class SavedAttribute() : EventAttribute( "scene.saved" );
	}
}