Example #1
0
        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);
        }
Example #2
0
        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");
        }
Example #3
0
        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);
        }
Example #4
0
        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");
        }