diff options
| author | Pinapelz <yukais@pinapelz.com> | 2024-08-27 22:21:18 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2024-08-27 22:21:18 -0700 |
| commit | 72f85fd952c8e53230c968ef9a433644dae90254 (patch) | |
| tree | a93b73e9d045243cdc4ee467376ef8573f297d2c /Malmstone/Plugin.cs | |
| parent | b8c43fbe717d794284c6c4578c9c00ae8e26d711 (diff) | |
Initial Version 1.0.0.0
Diffstat (limited to 'Malmstone/Plugin.cs')
| -rw-r--r-- | Malmstone/Plugin.cs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Malmstone/Plugin.cs b/Malmstone/Plugin.cs new file mode 100644 index 0000000..0455792 --- /dev/null +++ b/Malmstone/Plugin.cs @@ -0,0 +1,63 @@ +using Dalamud.Game.Command; +using Dalamud.IoC; +using Dalamud.Plugin; +using Dalamud.Interface.Windowing; +using Dalamud.Plugin.Services; +using Malmstone.Windows; + +namespace Malmstone; + +public sealed class Plugin : IDalamudPlugin +{ + [PluginService] internal static IDalamudPluginInterface PluginInterface { get; private set; } = null!; + [PluginService] internal static ITextureProvider TextureProvider { get; private set; } = null!; + [PluginService] internal static ICommandManager CommandManager { get; private set; } = null!; + + private const string CommandName = "/pmalm"; + + public Configuration Configuration { get; init; } + + public readonly WindowSystem WindowSystem = new("Malmstone"); + private ConfigWindow ConfigWindow { get; init; } + private MainWindow MainWindow { get; init; } + + public Plugin() + { + Configuration = PluginInterface.GetPluginConfig() as Configuration ?? new Configuration(); + + ConfigWindow = new ConfigWindow(this); + MainWindow = new MainWindow(this); + + WindowSystem.AddWindow(ConfigWindow); + WindowSystem.AddWindow(MainWindow); + + CommandManager.AddHandler(CommandName, new CommandInfo(OnCommand) + { + HelpMessage = "Open the Malmstone calculator main window" + }); + + PluginInterface.UiBuilder.Draw += DrawUI; + PluginInterface.UiBuilder.OpenConfigUi += ToggleConfigUI; + PluginInterface.UiBuilder.OpenMainUi += ToggleMainUI; + } + + public void Dispose() + { + WindowSystem.RemoveAllWindows(); + + ConfigWindow.Dispose(); + MainWindow.Dispose(); + + CommandManager.RemoveHandler(CommandName); + } + + private void OnCommand(string command, string args) + { + ToggleMainUI(); + } + + private void DrawUI() => WindowSystem.Draw(); + + public void ToggleConfigUI() => ConfigWindow.Toggle(); + public void ToggleMainUI() => MainWindow.Toggle(); +} |
