Repository navigation
Expand file tree
/
Copy pathMain.cs
More file actions
74 lines (59 loc) · 2.45 KB
/
Copy pathMain.cs
File metadata and controls
74 lines (59 loc) · 2.45 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
using System.Collections;
using System.Linq;
using GHPC.State;
using GHPC.Vehicle;
using M2BradleyExtended;
using MelonLoader;
using UnityEngine;
using ModUtil;
using Presets;
[assembly: MelonInfo(typeof(Mod), "M2 Bradley Extended", "0.9.6B", "ATLAS")]
[assembly: MelonGame("Radian Simulations LLC", "GHPC")]
namespace M2BradleyExtended
{
public class Mod : MelonMod
{
private ModuleManager module_manager;
public static Vehicle[] vics;
public static MelonPreferences_Category cfg;
private int valid_scene_count = 0;
internal IEnumerator OnGameReady(GameState _)
{
vics = GameObject.FindObjectsByType<Vehicle>(FindObjectsSortMode.None);
yield break;
}
public override void OnInitializeMelon()
{
cfg = MelonPreferences.CreateCategory("M2Extended");
M2Ext.Config(cfg);
module_manager = new ModuleManager("M2Ext");
module_manager.Add("Assets", new Assets());
module_manager.Add("M2Ext", new M2Ext());
PresetManager.LoadAllPresets();
//M2PresetTemplate template = new M2PresetTemplate();
//string toml_string = TomletMain.TomlStringFrom(template);
//File.WriteAllText(Path.Combine(MelonEnvironment.ModsDirectory + "/M2Extended/Presets", "template.cfg"), toml_string);
}
public override void OnSceneWasLoaded(int build_index, string scene_name)
{
if (scene_name == "MainMenu2_Scene" || scene_name == "MainMenu2-1_Scene" || scene_name == "t64_menu")
{
module_manager.LoadAllStaticAssets();
}
if (Util.menu_screens.Contains(scene_name)) return;
valid_scene_count++;
if (valid_scene_count == 1)
{
module_manager.UnloadAllDynamicAssets();
}
if (valid_scene_count == 2)
{
module_manager.LoadAllDynamicAssets();
StateController.RunOrDefer(GameState.PlayerReady, new GameStateEventHandler(OnGameReady), GameStatePriority.Medium);
StateController.RunOrDefer(GameState.PlayerReady, new GameStateEventHandler(M2Ext.Convert), GameStatePriority.Medium);
StateController.RunOrDefer(GameState.GameReady, new GameStateEventHandler(Ammo.SetupEraOptimizations), GameStatePriority.Lowest);
valid_scene_count = 0;
}
}
}
}