Initial Code
This commit is contained in:
75
Core.cs
Normal file
75
Core.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using MelonLoader;
|
||||
using System.Collections;
|
||||
using System.Reflection;
|
||||
using UnityEngine;
|
||||
using VMM.ModRegistry;
|
||||
using VMM.ModRegistry.Settings;
|
||||
using VMM.ModRegistry.Settings.Types;
|
||||
using VMM.UI;
|
||||
|
||||
[assembly: MelonInfo(typeof(VMM.Core), "VigilModManager", "1.0.0", "Exil_S", null)]
|
||||
[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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user