From 65fd975b1afc4accce5836454e25ac5bd3a718a3 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Mon, 2 Sep 2024 12:57:23 -0500 Subject: [PATCH 1/2] Add generic CSharpProxy. Add Empty C# template. --- .../Editor/Scripting/CSharpEmptyTemplate.cs | 6 ++ .../Editor/Content/Items/CSharpScriptItem.cs | 2 +- .../{CSharpScriptProxy.cs => CSharpProxy.cs} | 56 +++++++++++++++---- Source/Editor/Content/Proxy/CppProxy.cs | 8 +-- .../Editor/Modules/ContentDatabaseModule.cs | 1 + 5 files changed, 58 insertions(+), 15 deletions(-) create mode 100644 Content/Editor/Scripting/CSharpEmptyTemplate.cs rename Source/Editor/Content/Proxy/{CSharpScriptProxy.cs => CSharpProxy.cs} (58%) diff --git a/Content/Editor/Scripting/CSharpEmptyTemplate.cs b/Content/Editor/Scripting/CSharpEmptyTemplate.cs new file mode 100644 index 000000000..ea9626f7b --- /dev/null +++ b/Content/Editor/Scripting/CSharpEmptyTemplate.cs @@ -0,0 +1,6 @@ +%copyright%using System; +using System.Collections.Generic; +using FlaxEngine; + +namespace %namespace%; + diff --git a/Source/Editor/Content/Items/CSharpScriptItem.cs b/Source/Editor/Content/Items/CSharpScriptItem.cs index 26e7e98ac..b5e02f9ed 100644 --- a/Source/Editor/Content/Items/CSharpScriptItem.cs +++ b/Source/Editor/Content/Items/CSharpScriptItem.cs @@ -5,7 +5,7 @@ using FlaxEngine; namespace FlaxEditor.Content { /// - /// Content item that contains C# script file with source code. + /// Content item that contains C# file with source code. /// /// public class CSharpScriptItem : ScriptItem diff --git a/Source/Editor/Content/Proxy/CSharpScriptProxy.cs b/Source/Editor/Content/Proxy/CSharpProxy.cs similarity index 58% rename from Source/Editor/Content/Proxy/CSharpScriptProxy.cs rename to Source/Editor/Content/Proxy/CSharpProxy.cs index 0ea4df501..e6cb9b933 100644 --- a/Source/Editor/Content/Proxy/CSharpScriptProxy.cs +++ b/Source/Editor/Content/Proxy/CSharpProxy.cs @@ -9,19 +9,15 @@ using FlaxEngine; namespace FlaxEditor.Content { /// - /// Context proxy object for C# script files. + /// Proxy object for C# files /// - /// - [ContentContextMenu("New/C# Script")] - public class CSharpScriptProxy : ScriptProxy + /// /// + public abstract class CSharpProxy : ScriptProxy { /// /// The script files extension filter. /// - public static readonly string ExtensionFiler = "*.cs"; - - /// - public override string Name => "C# Script"; + public static readonly string ExtensionFilter = "*.cs"; /// public override bool IsProxyFor(ContentItem item) @@ -29,11 +25,17 @@ namespace FlaxEditor.Content return item is CSharpScriptItem; } + /// + /// Gets the path for the C# template. + /// + /// The path to the template + protected abstract void GetTemplatePath(out string path); + /// public override void Create(string outputPath, object arg) { // Load template - var templatePath = StringUtils.CombinePaths(Globals.EngineContentFolder, "Editor/Scripting/ScriptTemplate.cs"); + GetTemplatePath(out var templatePath); var scriptTemplate = File.ReadAllText(templatePath); // Find the module that this script is being added (based on the path) @@ -59,8 +61,42 @@ namespace FlaxEditor.Content /// public override string FileExtension => "cs"; - + /// public override Color AccentColor => Color.FromRGB(0x1c9c2b); } + + /// + /// Context proxy object for C# script files. + /// + /// + [ContentContextMenu("New/C#/C# Script")] + public class CSharpScriptProxy : CSharpProxy + { + /// + public override string Name => "C# Script"; + + /// + protected override void GetTemplatePath(out string path) + { + path = StringUtils.CombinePaths(Globals.EngineContentFolder, "Editor/Scripting/ScriptTemplate.cs"); + } + } + + /// + /// Context proxy object for empty C# files. + /// + /// + [ContentContextMenu("New/C#/C# Empty File")] + public class CSharpEmptyProxy : CSharpProxy + { + /// + public override string Name => "C# Empty File"; + + /// + protected override void GetTemplatePath(out string path) + { + path = StringUtils.CombinePaths(Globals.EngineContentFolder, "Editor/Scripting/CSharpEmptyTemplate.cs"); + } + } } diff --git a/Source/Editor/Content/Proxy/CppProxy.cs b/Source/Editor/Content/Proxy/CppProxy.cs index f4b92322b..46ba365ef 100644 --- a/Source/Editor/Content/Proxy/CppProxy.cs +++ b/Source/Editor/Content/Proxy/CppProxy.cs @@ -11,7 +11,7 @@ namespace FlaxEditor.Content /// /// Context proxy object for C++ files. /// - /// + /// public abstract class CppProxy : ScriptProxy { /// @@ -74,7 +74,7 @@ namespace FlaxEditor.Content /// /// Context proxy object for C++ script files. /// - /// + /// [ContentContextMenu("New/C++/C++ Script")] public class CppScriptProxy : CppProxy { @@ -98,7 +98,7 @@ namespace FlaxEditor.Content /// /// Context proxy object for C++ Json Asset files. /// - /// + /// [ContentContextMenu("New/C++/C++ Function Library")] public class CppStaticClassProxy : CppProxy { @@ -116,7 +116,7 @@ namespace FlaxEditor.Content /// /// Context proxy object for C++ Json Asset files. /// - /// + /// [ContentContextMenu("New/C++/C++ Json Asset")] public class CppAssetProxy : CppProxy { diff --git a/Source/Editor/Modules/ContentDatabaseModule.cs b/Source/Editor/Modules/ContentDatabaseModule.cs index aab5d1b39..98359b31f 100644 --- a/Source/Editor/Modules/ContentDatabaseModule.cs +++ b/Source/Editor/Modules/ContentDatabaseModule.cs @@ -1093,6 +1093,7 @@ namespace FlaxEditor.Modules Proxy.Add(new ParticleSystemProxy()); Proxy.Add(new SceneAnimationProxy()); Proxy.Add(new CSharpScriptProxy()); + Proxy.Add(new CSharpEmptyProxy()); Proxy.Add(new CppAssetProxy()); Proxy.Add(new CppStaticClassProxy()); Proxy.Add(new CppScriptProxy()); From ecace3d609685d713f21bcee5051b9af9d738d61 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Mon, 2 Sep 2024 13:07:15 -0500 Subject: [PATCH 2/2] Code style fix. --- Source/Editor/Content/Proxy/CSharpProxy.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Editor/Content/Proxy/CSharpProxy.cs b/Source/Editor/Content/Proxy/CSharpProxy.cs index e6cb9b933..334592354 100644 --- a/Source/Editor/Content/Proxy/CSharpProxy.cs +++ b/Source/Editor/Content/Proxy/CSharpProxy.cs @@ -30,7 +30,7 @@ namespace FlaxEditor.Content /// /// The path to the template protected abstract void GetTemplatePath(out string path); - + /// public override void Create(string outputPath, object arg) { @@ -61,7 +61,7 @@ namespace FlaxEditor.Content /// public override string FileExtension => "cs"; - + /// public override Color AccentColor => Color.FromRGB(0x1c9c2b); }