private void CreateUpgradeWidgets(UpgradePrefab prefab, GameObject container) { foreach (PartUpgrade pu in prefab.upgrades) { // Don't create widgets for untracked upgrades if (pu.isUntracked) { continue; } // Create new widget PartListTooltipWidget newWidget = Instantiate(tooltip.extInfoModuleWidgetPrefab); newWidget.gameObject.name = "Upgrade tooltip widget"; // Add widget to list newWidget.transform.SetParent(container.transform, false); // Add "toggle" component if ((pu.upgradeState == PartUpgrade.UpgradeState.Enabled || pu.upgradeState == PartUpgrade.UpgradeState.Disabled)) { Toggle toggle = newWidget.gameObject.AddComponent <Toggle>(); toggle.isOn = (pu.upgradeState == PartUpgrade.UpgradeState.Enabled) ? true : false; toggle.enabled = true; toggle.onValueChanged.AddListener(onUpgradeToggle); } // Add the upgrade handler UpgradeWidgetComponent handler = newWidget.gameObject.AddComponent <UpgradeWidgetComponent>(); handler.partName = prefab.part.partInfo.name; handler.upgrade = pu.upgradeName; handler.upgradeState = pu.upgradeState; handler.isUpdated = false; // Create text newWidget.Setup(pu.GetTitle(), pu.GetInfo(prefab)); ToggleColors(handler, newWidget.GetComponent <Image>()); // Everything is good newWidget.gameObject.SetActive(true); } }
private void ToggleWidgetsVisibility(UpgradePrefab prefab) { PartListTooltipWidget[] widgets = tooltip.panelExtended.GetComponentsInChildren <PartListTooltipWidget>(true); bool isModuleView = toggleWidget.GetComponent <Toggle>().isOn; foreach (PartListTooltipWidget widget in widgets) { if (widget.name == "PartListTooltipExtendedPartInfo(Clone)" || widget.name == "PartListTooltipExtendedResourceInfo(Clone)") { widget.gameObject.SetActive(isModuleView); } if (widget.name == "Upgrade tooltip widget") { widget.gameObject.SetActive(!isModuleView); } if (widget.name == "Widget list toggle") { if (isModuleView) { int disabledUpgrades = prefab.upgrades.Count(p => p.upgradeState == PartUpgrade.UpgradeState.Disabled); if (disabledUpgrades > 0) { widget.GetComponent <Image>().color = Color255(222, 193, 88); // pale yellow widget.textName.text = "Select upgrades (" + disabledUpgrades + " disabled)"; } else { widget.GetComponent <Image>().color = Color255(149, 223, 102); // pale green widget.textName.text = "Select upgrades (all enabled)"; } } else { widget.GetComponent <Image>().color = Color.white; widget.textName.text = "Show modules & resources"; } } } }