public void UpdateDistrictLineLabels(string sortFieldName = "Name", bool ascending = true, bool totals = true) { SortAndAdd(sortFieldName, ascending, totals); int counter = 0; foreach (var index in DistrictResource.districtResourceList) { var go = new GameObject(); var uic = districtLineLabels[counter].GetComponent <ResourceIndustryDistrictLineRow>(); SetFields(uic, index, totals); counter++; } foreach (var go in districtLineLabels) { _scrollablePanel.AttachUIComponent(go); } }
public void PopulateTransportLineLabels(string sortFieldName = "LineName") { foreach (var index in TransportUtil.GetUsedTransportLineIndices()) { if (TransportUtil.GetTransportLineType(index) != Type) { continue; } var go = new GameObject(Enum.GetName(typeof(TransportInfo.TransportType), Type) + "LineRow"); var uic = go.AddComponent <UITransportLineRow>(); uic.LineID = index; uic.LineNameChanged += id => { ClearTransportLineLabels(); PopulateTransportLineLabels(); }; _transportLineLabels.Add(go); } _transportLineLabels.Sort(new LineComparer(sortFieldName)); bool odd = false; foreach (var go in _transportLineLabels) { _scrollablePanel.AttachUIComponent(go); go.GetComponent <UITransportLineRow>().IsOdd = odd; odd = !odd; } switch (Type) { case TransportInfo.TransportType.Bus: _title.TitleText = String.Format("Bus Lines ({0})", _transportLineLabels.Count); break; case TransportInfo.TransportType.Metro: _title.TitleText = String.Format("Metro Lines ({0})", _transportLineLabels.Count); break; case TransportInfo.TransportType.Train: _title.TitleText = String.Format("Train Lines ({0})", _transportLineLabels.Count); break; case TransportInfo.TransportType.Tram: _title.TitleText = String.Format("Tram Lines ({0})", _transportLineLabels.Count); break; } }
private void AddToList(ushort buildingID, ref int count) { VMCBuildingInfoItem <T> buildingInfoItem; Type implClassBuildingLine = ReflectionUtils.GetImplementationForGenericType(typeof(VMCBuildingInfoItem <>), typeof(T)); if (count >= mainPanel.components.Count) { KlyteMonoUtils.CreateUIElement(out UIPanel item, mainPanel.transform); mainPanel.AttachUIComponent(item.gameObject); buildingInfoItem = (VMCBuildingInfoItem <T>)item.gameObject.AddComponent(implClassBuildingLine); } else { buildingInfoItem = (VMCBuildingInfoItem <T>)mainPanel.components[count].GetComponent(implClassBuildingLine); } buildingInfoItem.buildingId = buildingID; buildingInfoItem.RefreshData(); count++; }
private void AddToList(ushort lineID, ref int count) { UVMLineListItem lineInfoItem; Type implClassBuildingLine = ImplClassChildren; if (count >= mainPanel.components.Count) { var temp = new GameObject(); temp.AddComponent <UIPanel>(); lineInfoItem = (UVMLineListItem)temp.AddComponent(implClassBuildingLine); mainPanel.AttachUIComponent(lineInfoItem.gameObject); } else { lineInfoItem = (UVMLineListItem)mainPanel.components[count].GetComponent(implClassBuildingLine); } lineInfoItem.LineID = lineID; lineInfoItem.RefreshData(true, true); count++; }
private void AddToList(ushort buildingID, ref int count) { SVMBuildingInfoItem <T> buildingInfoItem; Type implClassBuildingLine = SVMUtils.GetImplementationForGenericType(typeof(SVMBuildingInfoItem <>), typeof(T)); if (count >= mainPanel.components.Count) { var temp = UITemplateManager.Get <PublicTransportLineInfo>(kLineTemplate).gameObject; GameObject.Destroy(temp.GetComponent <PublicTransportLineInfo>()); buildingInfoItem = (SVMBuildingInfoItem <T>)temp.AddComponent(implClassBuildingLine); mainPanel.AttachUIComponent(buildingInfoItem.gameObject); } else { buildingInfoItem = (SVMBuildingInfoItem <T>)mainPanel.components[count].GetComponent(implClassBuildingLine); } buildingInfoItem.buildingId = buildingID; buildingInfoItem.RefreshData(); count++; }
private VWVehicleInfoItem AddToList(string infoName, ref int count) { VWVehicleInfoItem buildingInfoItem; if (count >= mainPanel.components.Count) { var temp = UITemplateManager.Get <PublicTransportLineInfo>(kLineTemplate).gameObject; GameObject.Destroy(temp.GetComponent <PublicTransportLineInfo>()); buildingInfoItem = temp.AddComponent <VWVehicleInfoItem>(); mainPanel.AttachUIComponent(buildingInfoItem.gameObject); } else { buildingInfoItem = mainPanel.components[count].GetComponent <VWVehicleInfoItem>(); } buildingInfoItem.prefabName = infoName; buildingInfoItem.RefreshData(); count++; return(buildingInfoItem); }
private void RefreshOutsideConnections() { if (!OutsideConnectionSettingsManager.exists || !m_Initialized) { return; } OutsideConnectionSettingsManager.instance.SyncWithBuildingManager(); var outsideConnectionCount = 0; foreach (var element in OutsideConnectionSettingsManager.instance.SettingsDict) { OutsideConnectionInfo outsideConnectionInfo; if (outsideConnectionCount >= m_ScrollablePanel.components.Count) { var gameObject = new GameObject("AOCOutsideConnectionInfo", new System.Type[] { typeof(OutsideConnectionInfo) }); outsideConnectionInfo = gameObject.GetComponent <OutsideConnectionInfo>(); outsideConnectionInfo.component.width = m_ScrollablePanel.width - 2; outsideConnectionInfo.eventDetailsOpen += OnDetailsOpened; outsideConnectionInfo.eventNameChanged += OnConnectionNameChanged; m_ScrollablePanel.AttachUIComponent(gameObject); } else { outsideConnectionInfo = m_ScrollablePanel.components[outsideConnectionCount].GetComponent <OutsideConnectionInfo>(); } outsideConnectionInfo.buildingID = element.Key; ++outsideConnectionCount; } m_OutsideConnectionCountLabel.text = m_ScrollablePanel.components.Count.ToString(); m_CurSortCriterion = SortCriterion.DEFAULT; OnTransportTypeSort(); }
new protected UIButton CreateButton(string name, string tooltip, string baseIconName, int index, UITextureAtlas atlas, UIComponent tooltipBox, bool enabled) { UIScrollablePanel m_ScrollablePanel = (UIScrollablePanel)typeof(GeneratedScrollPanel).GetField("m_ScrollablePanel", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this); FieldInfo m_ObjectIndexField = typeof(GeneratedScrollPanel).GetField("m_ObjectIndex", BindingFlags.Instance | BindingFlags.NonPublic); int m_ObjectIndex = (int)m_ObjectIndexField.GetValue(this); UIButton uIButton; if (m_ScrollablePanel.childCount > m_ObjectIndex) { uIButton = (m_ScrollablePanel.components[m_ObjectIndex] as UIButton); } else { GameObject asGameObject = UITemplateManager.GetAsGameObject("PlaceableItemTemplate"); uIButton = (m_ScrollablePanel.AttachUIComponent(asGameObject) as UIButton); } uIButton.gameObject.GetComponent <TutorialUITag>().tutorialTag = name; uIButton.text = string.Empty; uIButton.name = name; uIButton.tooltipAnchor = UITooltipAnchor.Anchored; uIButton.tabStrip = true; uIButton.horizontalAlignment = UIHorizontalAlignment.Center; uIButton.verticalAlignment = UIVerticalAlignment.Middle; uIButton.pivot = UIPivotPoint.TopCenter; if (atlas != null) { uIButton.atlas = atlas; } if (index != -1) { uIButton.zOrder = index; } uIButton.verticalAlignment = this.buttonsAlignment; uIButton.foregroundSpriteMode = UIForegroundSpriteMode.Fill; uIButton.normalFgSprite = baseIconName; uIButton.focusedFgSprite = baseIconName + "Focused"; uIButton.hoveredFgSprite = baseIconName + "Hovered"; uIButton.pressedFgSprite = baseIconName + "Pressed"; uIButton.disabledFgSprite = baseIconName + "Disabled"; UIComponent uIComponent = (uIButton.childCount <= 0) ? null : uIButton.components[0]; if (uIComponent != null) { uIComponent.isVisible = false; } uIButton.isEnabled = enabled; uIButton.tooltip = tooltip; uIButton.tooltipBox = tooltipBox; uIButton.group = base.component; m_ObjectIndexField.SetValue(this, m_ObjectIndex + 1); // Start mod uIButton.eventVisibilityChanged += new PropertyChangedEventHandler <bool>(Init); GeneratedScrollPanel panel = this; SimulationManager.instance.AddAction(() => { if (uIButton.objectUserData is PrefabInfo prefab) { string key = Asset.GetName(prefab); if (AssetTagList.instance.assets.ContainsKey(key)) { if (AssetTagList.instance.assets[key].onButtonClicked == null) { MethodInfo onButtonClicked = panel.GetType().GetMethod("OnButtonClicked", BindingFlags.NonPublic | BindingFlags.Instance); AssetTagList.instance.assets[key].onButtonClicked = Delegate.CreateDelegate(typeof(Asset.OnButtonClicked), panel, onButtonClicked, false) as Asset.OnButtonClicked; } } } }); // End mod return(uIButton); }