using AIImages.Services;
using AIImages.Settings;
using HarmonyLib;
using UnityEngine;
using Verse;
namespace AIImages
{
///
/// Main mod class with settings support
///
public class AIImagesMod : Mod
{
public static AIImagesModSettings Settings { get; private set; }
// Singleton сервисы
public static IPawnDescriptionService PawnDescriptionService { get; private set; }
public static IPromptGeneratorService PromptGeneratorService { get; private set; }
public static IStableDiffusionApiService ApiService { get; private set; }
public AIImagesMod(ModContentPack content)
: base(content)
{
Settings = GetSettings();
// Инициализируем сервисы
PawnDescriptionService = new PawnDescriptionService();
PromptGeneratorService = new AdvancedPromptGenerator();
ApiService = new StableDiffusionApiService(Settings.savePath);
Log.Message("[AI Images] Mod initialized successfully with settings");
}
public override void DoSettingsWindowContents(Rect inRect)
{
AIImagesSettingsUI.DoSettingsWindowContents(inRect, Settings);
base.DoSettingsWindowContents(inRect);
}
public override string SettingsCategory()
{
return "AI Images";
}
}
///
/// Static constructor for Harmony patches
///
[StaticConstructorOnStartup]
public static class AIImagesHarmonyPatcher
{
static AIImagesHarmonyPatcher()
{
var harmony = new Harmony("Mrleo1nid.aiimages");
harmony.PatchAll();
Log.Message("[AI Images] Harmony patches applied successfully");
}
}
}