-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathENA.cs
54 lines (42 loc) · 1.51 KB
/
ENA.cs
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
using Colossal.Logging;
using Extra.Lib.Debugger;
using Game;
using Game.Modding;
using Game.SceneFlow;
using HarmonyLib;
using System.IO;
using System.Linq;
using ExtraNetworksAndAreas.Mod;
namespace ExtraNetworksAndAreas
{
public class ENA : IMod
{
private static readonly ILog log = LogManager.GetLogger($"{nameof(ExtraNetworksAndAreas)}").SetShowsErrorsInUI(false);
internal static Logger Logger { get; private set; } = new(log, false);
internal static string ResourcesIcons { get; private set; }
private Harmony harmony;
public void OnLoad(UpdateSystem updateSystem)
{
Logger.Info(nameof(OnLoad));
if (!GameManager.instance.modManager.TryGetExecutableAsset(this, out var asset)) return;
Logger.Info($"Current mod asset at {asset.path}");
FileInfo fileInfo = new(asset.path);
ResourcesIcons = Path.Combine(fileInfo.DirectoryName, "Icons");
EditEntities.SetupEditEntities();
Icons.LoadIcons(fileInfo.DirectoryName);
harmony = new($"{nameof(ExtraNetworksAndAreas)}.{nameof(ENA)}");
harmony.PatchAll(typeof(ENA).Assembly);
var patchedMethods = harmony.GetPatchedMethods().ToArray();
Logger.Info($"Plugin ExtraNetworksAndAreas made patches! Patched methods: " + patchedMethods.Length);
foreach (var patchedMethod in patchedMethods)
{
Logger.Info($"Patched method: {patchedMethod.Module.Name}:{patchedMethod.Name}");
}
}
public void OnDispose()
{
Logger.Info(nameof(OnDispose));
harmony.UnpatchAll($"{nameof(ExtraNetworksAndAreas)}.{nameof(ENA)}");
}
}
}