Editor/ComponentTemplate.cs
using Editor;


[Icon( "touch_app" )]
[Title( "SimpleInteraction" )]
[Description( "A simple interaction component so you can interact with objects" )]
public partial class SimpleInteractionTemplate : ComponentTemplate
{
	public override void Create( string componentName, string path )
	{
		var content = $$"""
		using Sandbox;

		public sealed class {{componentName}} : SimpleInteractions.SimpleInteraction
		{
			protected override void OnStart()
			{
				base.OnStart();

				// Put your initialization code here if you have any
			}

			protected override void OnUpdate()
			{
				base.OnUpdate();

				// Put your update code here if you have any
			}


			[Rpc.Broadcast]
			protected override void OnInteract()
			{
				Log.Info($"{Rpc.Caller.DisplayName} interacted with {this.GameObject.Name}!");
			}
		}

		""";

		var directory = System.IO.Path.GetDirectoryName( path );
		System.IO.File.WriteAllText( System.IO.Path.Combine( directory, componentName + Suffix ), content );
	}
}