aboutsummaryrefslogtreecommitdiffstats
path: root/Malmstone/Plugin.cs
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2024-08-27 22:21:18 -0700
committerPinapelz <yukais@pinapelz.com>2024-08-27 22:21:18 -0700
commit72f85fd952c8e53230c968ef9a433644dae90254 (patch)
treea93b73e9d045243cdc4ee467376ef8573f297d2c /Malmstone/Plugin.cs
parentb8c43fbe717d794284c6c4578c9c00ae8e26d711 (diff)
Initial Version 1.0.0.0
Diffstat (limited to 'Malmstone/Plugin.cs')
-rw-r--r--Malmstone/Plugin.cs63
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();
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage