using BepInEx; using BepInEx.Logging; using BepInEx.Unity.IL2CPP; using Il2CppInterop.Runtime.Injection; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; namespace AutoLight; [BepInPlugin(PLUGIN_GUID, PLUGIN_NAME, PLUGIN_VERSION)] public class Plugin : BasePlugin { public const string PLUGIN_GUID = "de.mpburgmann.AutoLight"; public const string PLUGIN_NAME = "AutoLight"; public const string PLUGIN_VERSION = "1.0.0"; internal static new ManualLogSource Log; public override void Load() { Log = base.Log; Log.LogInfo($"Plugin {PLUGIN_GUID} is loaded!"); SceneManager.sceneLoaded += (UnityAction) OnSceneLoaded; } private static void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (scene.name == "Main Scene") { ClassInjector.RegisterTypeInIl2Cpp(); GameObject gameObject = new("AutoLightBehaviour"); Object.DontDestroyOnLoad(gameObject); gameObject.AddComponent(); } if(scene.name == "Main Menu") { Object gameObject = GameObject.Find("AutoLightBehaviour"); if(gameObject != null) { Object.Destroy(gameObject); } } } }