Ejemplo n.º 1
0
 private static void VSyncSwitchCheckbox()
 {
     if (ModLoader.GetCurrentScene() == CurrentScene.MainMenu)
     {
         QualitySettings.vSyncCount = (bool)forceMenuVsync.GetValue() ? 1 : 0;
     }
 }
Ejemplo n.º 2
0
 void HelpCommand(string[] args)
 {
     ModConsole.Print("<color=green><b>Available commands:</b></color>");
     CommandRegistration[] cmds = commands.Values.GroupBy(x => x.command).Select(g => g.First()).Distinct().ToArray();
     for (int i = 0; i < cmds.Length; i++)
     {
         if (cmds[i].showInHelp)
         {
             AppendLogLine(string.Format("<color=orange><b>{0}</b></color>: {1}", cmds[i].command, cmds[i].help));
         }
     }
     if (ModLoader.GetCurrentScene() != CurrentScene.Game)
     {
         AppendLogLine("<b><color=red>More commands may appear after you load a save...</color></b>");
     }
 }
        void HelpCommand(string[] args)
        {
            ModConsole.Print("<color=green><b>Available commands:</b></color>");
            List <CommandRegistration> cmds = commands.Values.GroupBy(x => x.command).Select(g => g.First()).Distinct().ToList();

            foreach (CommandRegistration reg in cmds)
            {
                if (reg.showInHelp)
                {
                    AppendLogLine(string.Format("<color=orange><b>{0}</b></color>: {1}", reg.command, reg.help));
                }
            }
            if (ModLoader.GetCurrentScene() != CurrentScene.Game)
            {
                AppendLogLine("<b><color=red>More commands may appear after you load a save...</color></b>");
            }
        }
Ejemplo n.º 4
0
        void CreateList()
        {
            if ((bool)ModSettings_menu.showCoreModsDf.GetValue() &&
                !coreModCheckbox.isOn)
            {
                coreModCheckbox.isOn = true;
                return;
            }
            Mod[] coreMods =
                ModLoader.LoadedMods.Where(x => x.ID.StartsWith("MSCLoader_")).ToArray();
            Mod[] modList =
                ModLoader.LoadedMods.Where(x => !x.ID.StartsWith("MSCLoader_")).ToArray();
            Mod[] updateMods = modList.Where(x => x.hasUpdate).ToArray();
            Mod[] menuMods   = modList.Where(x => x.LoadInMenu).ToArray();

            RemoveChildren(modView.transform);
            if (coreModCheckbox.isOn)
            {
                ModListHeader("Core Mods", new Color32(101, 34, 18, 255),
                              new Color32(254, 254, 0, 255));
                for (int i = 0; i < coreMods.Length; i++)
                {
                    ModButton(coreMods[i].Name, coreMods[i].Version, coreMods[i].Author,
                              coreMods[i]);
                }
            }
            if (modList.Length == 0)
            {
                ModListHeader("No mods installed", Color.blue, Color.white);
                if (ModLoader.InvalidMods.Count == 0)
                {
                    return;
                }
                ModListHeader("Invalid/Broken Mods", new Color32(101, 34, 18, 255),
                              new Color32(254, 254, 0, 255));
                for (int i = 0; i < ModLoader.InvalidMods.Count; i++)
                {
                    GameObject invMod = Instantiate(ms.ModButton_Invalid);
                    invMod.transform.GetChild(0).GetComponent <Text>().text =
                        ModLoader.InvalidMods[i];
                    invMod.transform.SetParent(modView.transform, false);
                }
                return;
            }
            if (updateMods.Length > 0)
            {
                ModListHeader("Mods with updates", new Color32(57, 57, 57, 255),
                              new Color32(0, 255, 255, 255));
                for (int i = 0; i < updateMods.Length; i++)
                {
                    ModButton(updateMods[i].Name, updateMods[i].Version, updateMods[i].Author,
                              updateMods[i]);
                }
            }
            if (ModLoader.GetCurrentScene() == CurrentScene.MainMenu)
            {
                if (menuMods.Length > 0)
                {
                    ModListHeader("Loaded Mods", new Color32(57, 57, 57, 255),
                                  new Color32(0, 255, 255, 255));
                    for (int i = 0; i < menuMods.Length; i++)
                    {
                        if (!menuMods[i].isDisabled && !menuMods[i].hasUpdate)
                        {
                            ModButton(menuMods[i].Name, menuMods[i].Version, menuMods[i].Author,
                                      menuMods[i]);
                        }
                    }
                }
                ModListHeader("Ready to load", new Color32(57, 57, 57, 255),
                              new Color32(0, 255, 255, 255));
                for (int i = 0; i < modList.Length; i++)
                {
                    if (!modList[i].LoadInMenu && !modList[i].isDisabled &&
                        !modList[i].hasUpdate)
                    {
                        ModButton(
                            modList[i].Name, modList[i].Version, modList[i].Author, modList[i]);
                    }
                }
            }
            else
            {
                ModListHeader("Loaded Mods", new Color32(57, 57, 57, 255),
                              new Color32(0, 255, 255, 255));
                for (int i = 0; i < modList.Length; i++)
                {
                    if (!modList[i].isDisabled && !modList[i].hasUpdate)
                    {
                        ModButton(
                            modList[i].Name, modList[i].Version, modList[i].Author, modList[i]);
                    }
                }
            }
            Mod[] disMods = modList.Where(x => x.isDisabled).ToArray();
            if (disMods.Length > 0)
            {
                ModListHeader("Disabled mods", new Color32(101, 34, 18, 255),
                              new Color32(254, 254, 0, 255));
                for (int i = 0; i < disMods.Length; i++)
                {
                    ModButton(
                        disMods[i].Name, disMods[i].Version, disMods[i].Author, disMods[i]);
                }
            }
            if (ModLoader.InvalidMods.Count > 0)
            {
                ModListHeader("Invalid/Broken Mods", new Color32(101, 34, 18, 255),
                              new Color32(254, 254, 0, 255));
                for (int i = 0; i < ModLoader.InvalidMods.Count; i++)
                {
                    GameObject invMod = Instantiate(ms.ModButton_Invalid);
                    invMod.transform.GetChild(0).GetComponent <Text>().text =
                        ModLoader.InvalidMods[i];
                    invMod.transform.SetParent(modView.transform, false);
                }
            }
        }
Ejemplo n.º 5
0
        public void ModButton(string name, string version, string author, Mod mod)
        {
            GameObject modButton = Instantiate(ms.ModButton);

            if (mod.ID.StartsWith("MSCLoader_"))
            {
                modButton.transform.GetChild(1).GetChild(0).GetComponent <Text>().color =
                    Color.cyan;
                modButton.transform.GetChild(1).GetChild(3).GetComponent <Text>().text =
                    "<color=cyan>Core Module!</color>";
                modButton.transform.GetChild(1)
                .GetChild(4)
                .GetChild(0)
                .GetComponent <Button>()
                .interactable = false;
            }
            else if (mod.isDisabled)
            {
                modButton.transform.GetChild(1).GetChild(0).GetComponent <Text>().color =
                    Color.red;
                modButton.transform.GetChild(1).GetChild(3).GetComponent <Text>().text =
                    "<color=red>Mod is disabled!</color>";
                modButton.transform.GetChild(2).GetChild(1).gameObject.SetActive(
                    true);                             // Add plugin Disabled icon
                modButton.transform.GetChild(2).GetChild(1).GetComponent <Image>().color =
                    Color.red;
            }
            else if (!mod.LoadInMenu &&
                     ModLoader.GetCurrentScene() == CurrentScene.MainMenu)
            {
                modButton.transform.GetChild(1).GetChild(0).GetComponent <Text>().color =
                    Color.yellow;
                modButton.transform.GetChild(1).GetChild(3).GetComponent <Text>().text =
                    "<color=yellow>Ready to load</color>";
            }
            else
            {
                modButton.transform.GetChild(1).GetChild(0).GetComponent <Text>().color =
                    Color.green;
            }

            modButton.transform.GetChild(1)
            .GetChild(4)
            .GetChild(0)
            .GetComponent <Button>()
            .onClick.AddListener(() => ms.settings.ModDetailsShow(mod));

            if (Settings.Get(mod).Count > 0)
            {
                modButton.transform.GetChild(1)
                .GetChild(4)
                .GetChild(1)
                .GetComponent <Button>()
                .interactable = true;
                modButton.transform.GetChild(1)
                .GetChild(4)
                .GetChild(1)
                .GetComponent <Button>()
                .onClick.AddListener(() => ms.settings.ModSettingsShow(mod));
            }

            if (Keybind.Get(mod).Count > 0)
            {
                modButton.transform.GetChild(1)
                .GetChild(4)
                .GetChild(2)
                .GetComponent <Button>()
                .interactable = true;
                modButton.transform.GetChild(1)
                .GetChild(4)
                .GetChild(2)
                .GetComponent <Button>()
                .onClick.AddListener(() => ms.settings.ModKeybindsShow(mod));
            }

            if (name.Length > 24)
            {
                modButton.transform.GetChild(1).GetChild(0).GetComponent <Text>().text =
                    string.Format("{0}...", name.Substring(0, 22));
            }
            else
            {
                modButton.transform.GetChild(1).GetChild(0).GetComponent <Text>().text = name;
            }

            modButton.transform.GetChild(1).GetChild(1).GetComponent <Text>().text =
                string.Format("by <color=orange>{0}</color>", author);
            modButton.transform.GetChild(1).GetChild(2).GetComponent <Text>().text =
                version;
            modButton.transform.SetParent(modView.transform, false);

            if (mod.metadata != null && mod.metadata.icon.iconFileName != null &&
                mod.metadata.icon.iconFileName != string.Empty)
            {
                if (mod.metadata.icon.isIconRemote)
                {
                    if (File.Exists(Path.Combine(ModLoader.ManifestsFolder,
                                                 @"Mod Icons\" + mod.metadata.icon.iconFileName)))
                    {
                        try {
                            Texture2D t2d = new Texture2D(1, 1);
                            t2d.LoadImage(File.ReadAllBytes(Path.Combine(ModLoader.ManifestsFolder,
                                                                         @"Mod Icons\" + mod.metadata.icon.iconFileName)));
                            modButton.transform.GetChild(0)
                            .GetChild(0)
                            .GetComponent <RawImage>()
                            .texture = t2d;
                        } catch (Exception e) {
                            ModConsole.Error(e.Message);
                            System.Console.WriteLine(e);
                        }
                    }
                }
                else if (mod.metadata.icon.isIconUrl)
                {
                    try {
                        WWW www = new WWW(mod.metadata.icon.iconFileName);
                        modButton.transform.GetChild(0)
                        .GetChild(0)
                        .GetComponent <RawImage>()
                        .texture = www.texture;
                    } catch (Exception e) {
                        ModConsole.Error(e.Message);
                        System.Console.WriteLine(e);
                    }
                }
                else
                {
                    if (File.Exists(Path.Combine(ModLoader.GetModAssetsFolder(mod),
                                                 mod.metadata.icon.iconFileName)))
                    {
                        try {
                            Texture2D t2d = new Texture2D(1, 1);
                            t2d.LoadImage(
                                File.ReadAllBytes(Path.Combine(ModLoader.GetModAssetsFolder(mod),
                                                               mod.metadata.icon.iconFileName)));
                            modButton.transform.GetChild(0)
                            .GetChild(0)
                            .GetComponent <RawImage>()
                            .texture = t2d;
                        } catch (Exception e) {
                            ModConsole.Error(e.Message);
                            System.Console.WriteLine(e);
                        }
                    }
                }
            }
            if (mod.hasUpdate)
            {
                modButton.transform.GetChild(1).GetChild(3).GetComponent <Text>().text =
                    "<color=lime>UPDATE AVAILABLE!</color>";
            }
            if (mod.UseAssetsFolder)
            {
                modButton.transform.GetChild(2).GetChild(2).gameObject.SetActive(
                    true);                             // Add assets icon
            }
            if (!mod.isDisabled)
            {
                modButton.transform.GetChild(2).GetChild(1).gameObject.SetActive(
                    true);                             // Add plugin OK icon
            }
            if (mod.LoadInMenu)
            {
                modButton.transform.GetChild(2).GetChild(0).gameObject.SetActive(
                    true);                             // Add Menu Icon
            }
        }