static bool OnToggle(UnityModManager.ModEntry modEntry, bool value) { Main.modEntry = modEntry; if (enabled == value) { return(true); } enabled = value; if (enabled) { // disable if xlshredmenu is detected var mod = UnityModManager.FindMod("blendermf.XLShredMenu"); if (mod != null) { modEntry.CustomRequirements = $"Mod {mod.Info.DisplayName} incompatible"; enabled = false; return(false); } harmony = new Harmony(modEntry.Info.Id); harmony.PatchAll(Assembly.GetExecutingAssembly()); if (XLGraphicsMenu.Instance == null) { if (uiBundle == null) { uiBundle = AssetBundle.LoadFromFile(modEntry.Path + "graphicsmenuassetbundle"); } GameObject newMenuObject = GameObject.Instantiate(uiBundle.LoadAsset <GameObject>("Assets/Prefabs/Menu.prefab")); GameObject.DontDestroyOnLoad(newMenuObject); menu = XLGraphicsMenu.Instance; xlGraphics = new GameObject().AddComponent <XLGraphics>(); GameObject.DontDestroyOnLoad(xlGraphics.gameObject); Cursor.visible = true; Cursor.lockState = CursorLockMode.None; } } else { harmony.UnpatchAll(harmony.Id); GameObject.Destroy(xlGraphics.gameObject); xlGraphics = null; } return(true); }
public void Start() { Logger.Log("Start of XLGraphics"); Screen.fullScreenMode = FullScreenMode.Windowed; Instance = this; // load settings Main.settings = Settings.Load(); if (Main.settings.presetOrder == null) { throw new Exception("???"); } // initiate components new VolumeUtils(); new UI(); new PresetManager(); PresetManager.Instance.LoadPresets(); UI.Instance.CollectElements(); UI.Instance.AddBaseListeners(); UI.Instance.AddPresetListeners(); basicEffectHandlers = new List <EffectHandler> { new VSyncHandler(), new FullScreenHandler(), new AntiAliasingHandler(), new RenderDistanceHandler() }; presetEffectHandlers = new List <PresetEffectHandler> { new BloomHandler(), new ChromaticAberrationHandler() }; foreach (var eH in basicEffectHandlers) { eH.ConnectUI(); } foreach (var eH in presetEffectHandlers) { eH.ConnectUI(); } XLGraphicsMenu.Instance.basicContent.SetActive(true); Logger.Log("End of XLGraphics"); }
static bool OnToggle(UnityModManager.ModEntry modEntry, bool value) { Main.Logger.Log("OnToggle " + value.ToString()); if (enabled == value) { return(true); } enabled = value; if (value) { // disable if xlshredmenu is detected var mod = UnityModManager.FindMod("blendermf.XLShredMenu"); if (mod != null) { modEntry.CustomRequirements = $"Mod {mod.Info.DisplayName} incompatible"; enabled = false; return(false); } // create harmony instance harmony = new Harmony(modEntry.Info.Id); // patch harmony.PatchAll(Assembly.GetExecutingAssembly()); // instantiate menu and XLGraphics monobehaviour GameObject menuGO = GameObject.Instantiate(menuObjectAsset); menu = XLGraphicsMenu.Instance; xlGraphics = new GameObject().AddComponent <XLGraphics>(); GameObject.DontDestroyOnLoad(menuGO); GameObject.DontDestroyOnLoad(xlGraphics.gameObject); } else { // unpatch harmony.UnpatchAll(harmony.Id); // destroy menu and XLGraphics monobehaviour GameObject.DestroyImmediate(menu.gameObject); GameObject.DestroyImmediate(xlGraphics.gameObject); } Main.Logger.Log("Loaded"); return(true); }
public void Start() { Logger.Log("Start of XLGraphics"); //Screen.fullScreenMode = FullScreenMode.Windowed; Instance = this; // load settings Main.settings = Settings.Load(); // initialize components new VolumeUtils(); new UI(); new PresetManager(); gameObject.AddComponent <CustomCameraController>(); gameObject.AddComponent <CustomDofController>(); gameObject.AddComponent <CustomLightController>(); PresetManager.Instance.LoadPresets(); //CustomDofController.Instance.UpdateDofMode(); // prepare UI UI.Instance.CollectElements(false); UI.Instance.AddBaseListeners(); UI.Instance.AddPresetListeners(); basicEffectHandlers = new List <EffectHandler> { new PostProcessingHandler(), new VSyncHandler(), new FullScreenHandler(), new AntiAliasingHandler(), new RenderDistanceHandler() }; presetEffectHandlers = new List <PresetEffectHandler> { new BloomHandler(), new ChromaticAberrationHandler(), new DepthOfFieldHandler(), new LensDistortionHandler(), new LightHandler(), new MotionBlurHandler(), new VignetteHandler() }; cameraEffectHandlers = new List <EffectHandler> { new CameraModeHandler(), new ReplayFovHandler(), new FollowCameraHandler(), new NormalCameraHandler(), new PovCameraHandler(), new SkateCameraHandler() }; foreach (var eH in basicEffectHandlers) { eH.ConnectUI(); } foreach (var eH in presetEffectHandlers) { eH.ConnectUI(); } foreach (var eH in cameraEffectHandlers) { eH.ConnectUI(); } XLGraphicsMenu.Instance.basicContent.SetActive(true); XLGraphicsMenu.Instance.gameObject.SetActive(false); Logger.Log("End of XLGraphics"); }