public void PerformModCheck()
        {
            DebugLog.LogToFileOnly("Performing incompatible mods check");
            Dictionary <ulong, string> incompatibleMods = new Dictionary <ulong, string>();

            for (int i = 0; i < userModList.Length; i++)
            {
                string incompatibleModName = "";
                if (incompatibleModList.TryGetValue(userModList[i], out incompatibleModName))
                {
                    incompatibleMods.Add(userModList[i], incompatibleModName);
                }
            }

            if (incompatibleMods.Count > 0)
            {
                DebugLog.LogToFileOnly("Incompatible mods detected! Count: " + incompatibleMods.Count);
                IncompatibleModsPanel panel = IncompatibleModsPanel.Instance;
                panel.IncompatibleMods = incompatibleMods;
                panel.Initialize();
                UIView.PushModal(panel);
            }
            else
            {
                DebugLog.LogToFileOnly("No incompatible mods detected");
            }
        }
        public void PerformModCheck()
        {
            Log.Info("Performing incompatible mods check");
            Dictionary <ulong, string> incompatibleMods = new Dictionary <ulong, string>();

            for (int i = 0; i < userModList.Length; i++)
            {
                string incompatibleModName;
                if (incompatibleModList.TryGetValue(userModList[i], out incompatibleModName))
                {
                    incompatibleMods.Add(userModList[i], incompatibleModName);
                }
            }

            if (incompatibleMods.Count > 0)
            {
                Log.Warning("Incompatible mods detected! Count: " + incompatibleMods.Count);
                IncompatibleModsPanel panel = UIView.GetAView().AddUIComponent(typeof(IncompatibleModsPanel)) as IncompatibleModsPanel;
                panel.IncompatibleMods = incompatibleMods;
                panel.Initialize();
                UIView.PushModal(panel);
                UIView.SetFocus(panel);
            }
            else
            {
                Log.Info("No incompatible mods detected");
            }
        }
        /// <summary>
        /// Initiates scan for incompatible mods. If any found, and the user has enabled the mod checker, it creates and initialises the modal dialog panel.
        /// </summary>
        public void PerformModCheck()
        {
            try {
                Dictionary <PluginInfo, string> detected = ScanForIncompatibleMods();

                if (detected.Count > 0)
                {
                    IncompatibleModsPanel panel = UIView.GetAView().AddUIComponent(typeof(IncompatibleModsPanel)) as IncompatibleModsPanel;
                    panel.IncompatibleMods = detected;
                    panel.Initialize();
                    UIView.PushModal(panel);
                    UIView.SetFocus(panel);
                }
            }
            catch (Exception e) {
                Log.Info("Something went wrong while checking incompatible mods - see main game log for details.");
                Debug.LogException(e);
            }
        }