diff --git a/GlitchyEngine/src/Generators/NewDisposableComponentGenerator.bf b/GlitchyEngine/src/Generators/NewDisposableComponentGenerator.bf new file mode 100644 index 0000000..c512318 --- /dev/null +++ b/GlitchyEngine/src/Generators/NewDisposableComponentGenerator.bf @@ -0,0 +1,40 @@ +using System; +using System.Text; +using static System.Compiler; + +namespace GlitchyEngine.Generators +{ + public class NewDisposableComponentGenerator : Generator + { + public override String Name => "New Disposable Component"; + + public override void InitUI() + { + AddEdit("name", "Component Name", ""); + } + + public override void Generate(String outFileName, String outText, ref Flags generateFlags) + { + var name = mParams["name"]; + if (name.EndsWith(".bf", .OrdinalIgnoreCase)) + name.RemoveFromEnd(3); + outFileName.Append(name); + + outText.AppendF( + $""" + using GlitchyEngine.World; + + namespace {Namespace} + {{ + struct {name} : IDisposableComponent + {{ + public void Dispose() mut + {{ + // TODO: Dispose of the content + }} + }} + }} + """); + } + } +} \ No newline at end of file diff --git a/GlitchyEngine/src/Generators/NewStructGenerator.bf b/GlitchyEngine/src/Generators/NewStructGenerator.bf new file mode 100644 index 0000000..d7fc1bd --- /dev/null +++ b/GlitchyEngine/src/Generators/NewStructGenerator.bf @@ -0,0 +1,32 @@ +using System; +using static System.Compiler; + +namespace GlitchyEngine.Generators +{ + public class NewStructGenerator : Generator + { + public override String Name => "New Struct"; + + public override void InitUI() + { + AddEdit("name", "Struct Name", ""); + } + + public override void Generate(String outFileName, String outText, ref Flags generateFlags) + { + var name = mParams["name"]; + if (name.EndsWith(".bf", .OrdinalIgnoreCase)) + name.RemoveFromEnd(3); + outFileName.Append(name); + outText.AppendF( + $""" + namespace {Namespace} + {{ + struct {name} + {{ + }} + }} + """); + } + } +} \ No newline at end of file