diff --git a/PolyMod.csproj b/PolyMod.csproj
index c45d0b7..f1447d2 100644
--- a/PolyMod.csproj
+++ b/PolyMod.csproj
@@ -10,6 +10,7 @@
https://polymod.dev/nuget/v3/index.json;
IL2CPP
+ PolyMod
1.2.7
2.16.0.15379
PolyModdingTeam
diff --git a/src/Api/PolyScript.cs b/src/Api/PolyScript.cs
index d53b0dc..7af7481 100644
--- a/src/Api/PolyScript.cs
+++ b/src/Api/PolyScript.cs
@@ -1,29 +1,47 @@
using BepInEx.Logging;
using Newtonsoft.Json.Linq;
-using PolyMod.Managers;
namespace PolyMod.Api;
public abstract class PolyScriptBase
{
- internal abstract void Initialize(string name, ManualLogSource logger);
+ ///
+ /// Initializes the PolyScript with the given mod and logger.
+ ///
+ /// The mod instance.
+ /// The logger instance.
+ internal abstract void Initialize(Mod mod, ManualLogSource logger);
+
+ /// >
+ /// Called when the mod is loaded.
+ ///
public abstract void Load();
- public abstract void UnLoad();
+
+ ///
+ /// Called when the mod is unloaded.
+ ///
+ public abstract void Unload();
+
internal PolyScriptBase()
{
}
}
public abstract class PolyScript : PolyScriptBase where TConfig : class where TExposedConfig : class
{
- internal override void Initialize(string name, ManualLogSource logger)
+ internal override void Initialize(Mod mod, ManualLogSource logger)
{
- ModName = name;
- Config = new Config(name, Config.ConfigTypes.PerMod);
- ExposedConfig = new Config(name, Config.ConfigTypes.Exposed);
+ Mod = mod;
+ Config = new Config(mod.id, Config.ConfigTypes.PerMod);
+ ExposedConfig = new Config(mod.id, Config.ConfigTypes.Exposed);
Logger = logger;
}
- public string ModName { get; private set; } = null!;
+ internal byte[]? GetFile(string fileName)
+ {
+ return Registry.mods[Mod.id].files.FirstOrDefault(f => f.name == fileName)?.bytes;
+ }
+
+ public Mod Mod { get; private set; } = null!;
protected Config Config { get; private set; } = null!;
protected Config ExposedConfig { get; private set; } = null!;
protected ManualLogSource Logger { get; private set; } = null!;
diff --git a/src/Loader.cs b/src/Loader.cs
index c5dc4d8..beda188 100644
--- a/src/Loader.cs
+++ b/src/Loader.cs
@@ -474,7 +474,7 @@ public static void LoadAssemblyFile(Mod mod, Mod.File file)
is { } modType)
{
var modInstance = (Api.PolyScriptBase) Activator.CreateInstance(modType)!;
- modInstance.Initialize(mod.id, BepInEx.Logging.Logger.CreateLogSource($"PolyMod] [{mod.id}"));
+ modInstance.Initialize(mod, BepInEx.Logging.Logger.CreateLogSource($"PolyMod] [{mod.id}"));
modInstance.Load();
return;
}