/* New mod loading system * void toggleIsModDisabled(LoadedModInfo mod) * { * if (mod == null) * return; * mod.IsEnabled = !mod.IsEnabled; * * ReloadModItems(); * } */ // Old mod loading system void addModToList(Mod mod, GameObject parent) { bool?isModNotActive = ModsManager.Instance.IsModDeactivated(mod); if (!isModNotActive.HasValue) { return; } GameObject modItemPrefab = AssetLoader.GetObjectFromFile("modswindow", "ModItemPrefab", "Clone Drone in the Danger Zone_Data/"); GameObject modItem = Instantiate(modItemPrefab, parent.transform); string modName = mod.GetModName(); string url = mod.GetModImageURL(); _modItems.Add(modItem); if (!string.IsNullOrEmpty(url)) { setImageFromURL(url, mod); } ModdedObject modItemModdedObject = modItem.GetComponent <ModdedObject>(); modItemModdedObject.GetObject <Text>(0).text = modName; // Set title modItemModdedObject.GetObject <Text>(1).text = mod.GetModDescription(); // Set description modItemModdedObject.GetObject <Text>(5).text = ModBotLocalizationManager.FormatLocalizedStringFromID("mods_menu_mod_id", mod.GetUniqueID()); Button enableOrDisableButton = modItem.GetComponent <ModdedObject>().GetObject <Button>(3); if (isModNotActive.Value) { modItem.GetComponent <Image>().color = Color.red; LocalizedTextField localizedTextField = enableOrDisableButton.transform.GetChild(0).GetComponent <LocalizedTextField>(); localizedTextField.LocalizationID = "mods_menu_enable_mod"; Accessor.CallPrivateMethod("tryLocalizeTextField", localizedTextField); enableOrDisableButton.colors = new ColorBlock() { normalColor = Color.green * 1.2f, highlightedColor = Color.green, pressedColor = Color.green * 0.8f, colorMultiplier = 1 }; } Button BroadcastButton = modItemModdedObject.GetObject <Button>(6); BroadcastButton.onClick.AddListener(delegate { onBroadcastButtonClicked(mod); }); BroadcastButton.gameObject.SetActive(GameModeManager.IsMultiplayer()); Button DownloadButton = modItemModdedObject.GetObject <Button>(7); DownloadButton.onClick.AddListener(delegate { onDownloadButtonClicked(mod); }); bool hasNoFile = ModsManager.Instance.GetIsModOnlyLoadedInMemory(mod); DownloadButton.gameObject.SetActive(hasNoFile); int modId = ModsManager.Instance.GetAllMods().IndexOf(mod); modItemModdedObject.GetObject <Button>(3).onClick.AddListener(delegate { toggleIsModDisabled(modId); }); // Add disable button callback modItemModdedObject.GetObject <Button>(4).onClick.AddListener(delegate { openModsOptionsWindowForMod(mod); }); // Add Mod Options button callback modItemModdedObject.GetObject <Button>(4).interactable = mod.ImplementsSettingsWindow(); }