using System;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
namespace IPA
|
|
{
|
|
/// <summary>
|
|
/// Interface for BSIPA plugins. Every class that implements this will be loaded if the DLL is placed at
|
|
/// <install dir>/Plugins.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Mods implemented with this interface should handle being enabled at runtime properly, unless marked
|
|
/// with the "no-runtime-enable" feature.
|
|
/// </remarks>
|
|
[Obsolete("Use the attribute-based system instead.")]
|
|
public interface IPlugin
|
|
{
|
|
/// <summary>
|
|
/// Called when a plugin is enabled. This is where you should set up Harmony patches and the like.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// This will be called after <c>Init</c>, and will be called when the plugin loads normally too.
|
|
/// When a plugin is disabled at startup, neither this nor Init will be called until it is enabled.
|
|
///
|
|
/// Init will only ever be called once.
|
|
/// </remarks>
|
|
void OnEnable();
|
|
|
|
/// <summary>
|
|
/// Gets invoked when the application is closed.
|
|
/// </summary>
|
|
void OnApplicationQuit();
|
|
|
|
/// <summary>
|
|
/// Gets invoked whenever a scene is loaded.
|
|
/// </summary>
|
|
/// <param name="scene">The scene currently loaded</param>
|
|
/// <param name="sceneMode">The type of loading</param>
|
|
void OnSceneLoaded(Scene scene, LoadSceneMode sceneMode);
|
|
|
|
/// <summary>
|
|
/// Gets invoked whenever a scene is unloaded
|
|
/// </summary>
|
|
/// <param name="scene">The unloaded scene</param>
|
|
void OnSceneUnloaded(Scene scene);
|
|
|
|
/// <summary>
|
|
/// Gets invoked whenever a scene is changed
|
|
/// </summary>
|
|
/// <param name="prevScene">The Scene that was previously loaded</param>
|
|
/// <param name="nextScene">The Scene being loaded</param>
|
|
void OnActiveSceneChanged(Scene prevScene, Scene nextScene);
|
|
}
|
|
}
|