Initial commit: AetherBags + KamiToolKit for FC Gitea
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Interface.Textures.TextureWraps;
|
||||
using Dalamud.IoC;
|
||||
using Dalamud.Plugin;
|
||||
using Dalamud.Plugin.Services;
|
||||
|
||||
namespace KamiToolKit.Classes;
|
||||
|
||||
internal class DalamudInterface {
|
||||
|
||||
private static DalamudInterface? instance;
|
||||
public static DalamudInterface Instance => instance ??= new DalamudInterface();
|
||||
|
||||
[PluginService] public IPluginLog Log { get; set; } = null!;
|
||||
[PluginService] public IAddonLifecycle AddonLifecycle { get; set; } = null!;
|
||||
[PluginService] public IDataManager DataManager { get; set; } = null!;
|
||||
[PluginService] public ITextureProvider TextureProvider { get; set; } = null!;
|
||||
[PluginService] public IFramework Framework { get; set; } = null!;
|
||||
[PluginService] public IAddonEventManager AddonEventManager { get; set; } = null!;
|
||||
[PluginService] public IDalamudPluginInterface PluginInterface { get; set; } = null!;
|
||||
[PluginService] public IGameGui GameGui { get; set; } = null!;
|
||||
[PluginService] public IGameInteropProvider GameInteropProvider { get; set; } = null!;
|
||||
[PluginService] public ISeStringEvaluator SeStringEvaluator { get; set; } = null!;
|
||||
|
||||
private DalamudInterface() {
|
||||
if (!KamiToolKitLibrary.IsInitialized)
|
||||
throw new Exception("KamiToolKit not initialized! You must call KamiToolKitLibrary.Initialize() before using KamiToolKit.\n" +
|
||||
"Don't forget to call KamiToolKitLibrary.Dispose() in your plugins dispose to ensure all assets are freed and to trigger bad practice warnings.");
|
||||
}
|
||||
|
||||
public string GetAssetDirectoryPath()
|
||||
=> Path.Combine(PluginInterface.AssemblyLocation.DirectoryName ?? throw new Exception("Directory from Dalamud is Invalid Somehow"), "Assets");
|
||||
|
||||
public string GetAssetPath(string assetName)
|
||||
=> Path.Combine(GetAssetDirectoryPath(), assetName);
|
||||
|
||||
public IDalamudTextureWrap? LoadAsset(string assetName)
|
||||
=> TextureProvider.GetFromFile(GetAssetPath(assetName)).GetWrapOrDefault();
|
||||
}
|
||||
|
||||
internal static class Log {
|
||||
|
||||
private static readonly bool ExcessiveLogging = false;
|
||||
|
||||
internal static void Debug(string message) {
|
||||
DalamudInterface.Instance.Log.Debug($"[KamiToolKit] {message}");
|
||||
}
|
||||
|
||||
internal static void Fatal(string message) {
|
||||
DalamudInterface.Instance.Log.Fatal($"[KamiToolKit] {message}");
|
||||
}
|
||||
|
||||
internal static void Warning(string message) {
|
||||
DalamudInterface.Instance.Log.Warning($"[KamiToolKit] {message}");
|
||||
}
|
||||
|
||||
internal static void Verbose(string message) {
|
||||
DalamudInterface.Instance.Log.Verbose($"[KamiToolKit] {message}");
|
||||
}
|
||||
|
||||
internal static void Excessive(string message) {
|
||||
if (ExcessiveLogging) {
|
||||
Verbose($"[KamiToolKit] {message}");
|
||||
}
|
||||
}
|
||||
|
||||
internal static void Error(string message) {
|
||||
DalamudInterface.Instance.Log.Error($"[KamiToolKit] {message}");
|
||||
}
|
||||
|
||||
internal static void Exception(Exception exception, [CallerMemberName] string? callerName = null) {
|
||||
DalamudInterface.Instance.Log.Error(exception, $"Exception in {callerName}");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user