Files
VigilModManager/Core.cs
2025-11-11 17:03:38 +01:00

76 lines
2.1 KiB
C#

using MelonLoader;
using System.Collections;
using System.Reflection;
using UnityEngine;
using VMM;
using VMM.ModRegistry;
using VMM.ModRegistry.Settings;
using VMM.ModRegistry.Settings.Types;
using VMM.UI;
[assembly: MelonInfo(typeof(VMM.Core), ModInfo.Name, ModInfo.Version, ModInfo.Author, ModInfo.DownloadLink)]
[assembly: MelonGame("Singularity Studios", "Vigil")]
namespace VMM
{
internal class Core : MelonMod
{
public static MelonLogger.Instance Logger { get; private set; }
public override void OnInitializeMelon()
{
Logger = LoggerInstance;
LoggerInstance.Msg("Initialized.");
}
public override void OnSceneWasLoaded(int buildIndex, string sceneName)
{
if (buildIndex != 0) return; // Main Menu only
InitializeManagers();
SetupModLoading();
}
public override void OnApplicationQuit()
{
Cleanup();
}
private void InitializeManagers()
{
UIManager.Instance = new UIManager();
UIManager.Instance.Initialize();
ModManager.Instance = new ModManager();
}
private void SetupModLoading()
{
//ModManager.Instance.onFinishedLoading += OnLoadedMods;
ModManager.Instance.LoadMods();
}
private void Cleanup()
{
if (ModManager.Instance != null)
{
//ModManager.Instance.onFinishedLoading -= OnLoadedMods;
}
}
//test setting for testing
//private void OnLoadedMods()
//{
// var settings = new ModSettings();
// var testToggle = new ToggleSetting
// {
// Name = "Test Toggle",
// Value = true,
// OnChanged = value => LoggerInstance.Msg($"Test Toggle pressed! State {value}")
// };
// settings.AddSetting(testToggle);
//
// ModManager.Instance.RegisterSettings(Assembly.GetExecutingAssembly(), settings);
//}
}
}