|
1 | 1 | using BepInEx.Logging; |
2 | 2 | using Newtonsoft.Json.Linq; |
3 | | -using PolyMod.Managers; |
4 | 3 |
|
5 | 4 | namespace PolyMod.Api; |
6 | 5 |
|
7 | 6 | public abstract class PolyScriptBase |
8 | 7 | { |
9 | | - internal abstract void Initialize(string name, ManualLogSource logger); |
| 8 | + /// <summary> |
| 9 | + /// Initializes the PolyScript with the given mod and logger. |
| 10 | + /// </summary> |
| 11 | + /// <param name="mod">The mod instance.</param> |
| 12 | + /// <param name="logger">The logger instance.</param> |
| 13 | + internal abstract void Initialize(Mod mod, ManualLogSource logger); |
| 14 | + |
| 15 | + /// <summary>> |
| 16 | + /// Called when the mod is loaded. |
| 17 | + /// </summary> |
10 | 18 | public abstract void Load(); |
11 | | - public abstract void UnLoad(); |
| 19 | + |
| 20 | + /// <summary> |
| 21 | + /// Called when the mod is unloaded. |
| 22 | + /// </summary> |
| 23 | + public abstract void Unload(); |
| 24 | + |
12 | 25 | internal PolyScriptBase() |
13 | 26 | { |
14 | 27 | } |
15 | 28 | } |
16 | 29 | public abstract class PolyScript<TConfig, TExposedConfig> : PolyScriptBase where TConfig : class where TExposedConfig : class |
17 | 30 | { |
18 | | - internal override void Initialize(string name, ManualLogSource logger) |
| 31 | + internal override void Initialize(Mod mod, ManualLogSource logger) |
19 | 32 | { |
20 | | - ModName = name; |
21 | | - Config = new Config<TConfig>(name, Config<TConfig>.ConfigTypes.PerMod); |
22 | | - ExposedConfig = new Config<TExposedConfig>(name, Config<TExposedConfig>.ConfigTypes.Exposed); |
| 33 | + Mod = mod; |
| 34 | + Config = new Config<TConfig>(mod.id, Config<TConfig>.ConfigTypes.PerMod); |
| 35 | + ExposedConfig = new Config<TExposedConfig>(mod.id, Config<TExposedConfig>.ConfigTypes.Exposed); |
23 | 36 | Logger = logger; |
24 | 37 | } |
25 | 38 |
|
26 | | - public string ModName { get; private set; } = null!; |
| 39 | + internal byte[]? GetFile(string fileName) |
| 40 | + { |
| 41 | + return Registry.mods[Mod.id].files.FirstOrDefault(f => f.name == fileName)?.bytes; |
| 42 | + } |
| 43 | + |
| 44 | + public Mod Mod { get; private set; } = null!; |
27 | 45 | protected Config<TConfig> Config { get; private set; } = null!; |
28 | 46 | protected Config<TExposedConfig> ExposedConfig { get; private set; } = null!; |
29 | 47 | protected ManualLogSource Logger { get; private set; } = null!; |
|
0 commit comments