-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCore.cs
More file actions
103 lines (86 loc) · 2.84 KB
/
Core.cs
File metadata and controls
103 lines (86 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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
{
if (_logger != null)
{
return _logger;
}
else
{
throw new System.Exception("Logger instance is not initialized yet.");
}
}
}
private static MelonLogger.Instance _logger;
public override void OnInitializeMelon()
{
_logger = LoggerInstance;
LoggerInstance.Msg("Initialized.");
}
public override void OnSceneWasLoaded(int buildIndex, string sceneName)
{
if (buildIndex != 0) return; // Main Menu only
var canvas = GameObject.Find("Canvas");
if (canvas != null)
LoggerInstance.Msg("Found Canvas Root.");
else LoggerInstance.Msg("Canvas Not Found.");
UIManager.Instance = new UIManager();
UIManager.Instance.Initialize();
ModManager.Instance = new ModManager();
ModManager.Instance.LoadMods();
}
public override void OnSceneWasUnloaded(int buildIndex, string sceneName)
{
if(buildIndex != 0) return;
//del old managers first
var UIInstance = UIManager.Instance;
var ModInstance = ModManager.Instance;
if (ModInstance != null)
ModInstance.Dispose();
if (UIInstance != null)
UIInstance.Dispose();
LoggerInstance.Msg("Managers Disposed.");
}
public override void OnApplicationQuit()
{
Cleanup();
}
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);
//}
}
}