From 664ba552ea9c0a4ed819f6203d90d93f84b46c5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Thu, 30 Dec 2021 16:52:32 +0100 Subject: [PATCH] Added struct and disposable component Generators --- .../NewDisposableComponentGenerator.bf | 40 +++++++++++++++++++ .../src/Generators/NewStructGenerator.bf | 32 +++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 GlitchyEngine/src/Generators/NewDisposableComponentGenerator.bf create mode 100644 GlitchyEngine/src/Generators/NewStructGenerator.bf 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