Editor/Events.Tools.cs
namespace Sandbox;

public static partial class Event
{
	/// <summary>
	/// Events for tools.
	/// </summary>
	public static partial class Tools
	{
		/// <summary>
		/// Events for hammer.
		/// </summary>
		public static class Hammer
		{
			/// <summary>
			/// Invoked when hammer is opened.
			/// </summary>
			public sealed class InitializedAttribute() : EventAttribute( "hammer.initialized" );

			/// <summary>
			/// Invoked for each <see cref="EditorNamespace.MapEditor.MapView"/> before rendering begins.
			/// <list type="table">
			///		<em>Arguments:</em>
			///		<item>
			///			<term><see cref="EditorNamespace.MapEditor.MapView"/></term>
			///			<description>A 2d or 3d view of the provided map doc.</description>
			///		</item>
			///	</list>
			/// </summary>
			public sealed class RenderMapAttribute() : EventAttribute( "hammer.rendermapview" );

			/// <summary>
			/// Invoked when the hammer hud is rendered.
			/// </summary>
			public sealed class RenderHUDAttribute() : EventAttribute( "hammer.rendermapviewhud" );

			/// <summary>
			/// Invoked when hammer selection has changed.
			/// </summary>
			public sealed class SelectionChangedAttribute() : EventAttribute( "hammer.selection.changed" );

			/// <summary>
			/// Invoked when the MapView is right clicked.
			/// <list type="table">
			///		<em>Arguments:</em>
			///		<item>
			///			<term><see cref="EditorNamespace.Menu"/></term>
			///			<description>ModelDoc.</description>
			///		</item>
			///		<item>
			///			<term><see cref="EditorNamespace.MapEditor.MapView"/></term>
			///			<description>A 2d or 3d view of the provided map doc.</description>
			///		</item>
			///	</list>
			/// </summary>
			public sealed class ContextMenuAttribute() : EventAttribute( "hammer.mapview.contextmenu" );
		}

		/// <summary>
		/// Events for ModelDoc.
		/// </summary>
		public static class ModelDoc
		{
			/// <summary>
			/// Invoked when ModelDoc is opened.
			/// <list type="table">
			///		<em>Arguments:</em>
			///		<item>
			///			<term><see cref="EditorNamespace.Menu"/></term>
			///			<description>The menu provided by ModelDoc.</description>
			///		</item>
			///	</list>
			/// </summary>
			public sealed class InitializedAttribute() : EventAttribute( "modeldoc.menu.tools" );
		}

		/// <summary>
		/// Events for ActionGraph.
		/// </summary>
		public static class ActionGraph
		{
			/// <summary>
			/// Invoked when inspecting an action graph element.
			/// <list type="table">
			///		<em>Arguments:</em>
			///		<item>
			///			<term><see cref="Facepunch.ActionGraphs.IMessageContext"/></term>
			///			<description>The action graph element.</description>
			///		</item>
			///	</list>
			/// </summary>
			public sealed class InspectAttribute() : EventAttribute( "assetsystem.openpicker" );
		}
	}
}