private void updateCheckboxes() { bool oldIsLoading = isLoading; isLoading = true; DepotAI depotAI = Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building].Info.GetAI() as DepotAI; List <string> prefixOptions = TLMUtils.getDepotPrefixesOptions(TLMCW.getConfigIndexForTransportInfo(m_secondary ? depotAI.m_secondaryTransportInfo : depotAI.m_transportInfo)); var prefixesServedList = TLMDepotAI.getPrefixesServedByDepot(m_buildingIdSelecionado.Building, m_secondary); for (uint i = 0; i <= 64; i++) { if (i < prefixOptions.Count) { prefixesCheckboxes[i].isVisible = true; prefixesCheckboxes[i].isChecked = prefixesServedList.Contains(i); prefixesCheckboxes[i].text = prefixOptions[(int)i]; } else { prefixesCheckboxes[i].isVisible = false; } } prefixesCheckboxes[65].isChecked = prefixesServedList.Contains(65); isLoading = oldIsLoading; }
public void RefreshData() { if (Singleton <BuildingManager> .exists) { m_prefixesServedList = TLMDepotAI.getPrefixesServedByDepot(m_buildingID); if (m_prefixesServedList == null) { GameObject.Destroy(gameObject); return; } bool isRowVisible; isRowVisible = TLMPublicTransportDetailPanel.instance.isOnCurrentPrefixFilter(m_prefixesServedList); if (!isRowVisible) { GetComponent <UIComponent>().isVisible = false; return; } GetComponent <UIComponent>().isVisible = true; Building b = Singleton <BuildingManager> .instance.m_buildings.m_buffer[this.m_buildingID]; this.m_depotName.text = Singleton <BuildingManager> .instance.GetBuildingName(this.m_buildingID, default(InstanceID)); byte districtID = Singleton <DistrictManager> .instance.GetDistrict(b.m_position); string districtName = districtID == 0 ? Locale.Get("TLM_DISTRICT_NONE") : Singleton <DistrictManager> .instance.GetDistrictName(districtID); this.m_districtName.text = districtName; //prefix this.m_prefixesServed.text = TLMUtils.getPrefixesServedAbstract(this.m_buildingID); List <string> prefixOptions = TLMUtils.getDepotPrefixesOptions(TLMCW.getConfigIndexForTransportInfo((b.Info.GetAI() as DepotAI).m_transportInfo)); prefixOptions.Add(Locale.Get("TLM_REGIONAL")); if (this.m_prefixOptions.items.Length != prefixOptions.Count) { this.m_prefixOptions.items = prefixOptions.ToArray(); onChangePrefixSelected(m_prefixOptions.selectedIndex); } } }
public override void RefreshLines() { var tsd = Singleton <T> .instance.GetTSD(); bool hasPrefix = TLMLineUtils.hasPrefix(ref tsd); int count = 0; foreach (ushort buildingID in TLMDepotAI.getAllDepotsFromCity()) { PrefabAI prefabAI = Singleton <BuildingManager> .instance.m_buildings.m_buffer[buildingID].Info.GetAI(); if (prefabAI is ShelterAI && tsd.isShelterAiDepot()) { AddToList(buildingID, false, ref count); } else if (!tsd.isShelterAiDepot() && prefabAI is DepotAI ai) { var tiArray = new TransportInfo[] { ai.m_transportInfo, ai.m_secondaryTransportInfo }; foreach (TransportInfo info in tiArray) { if (tsd.isFromSystem(info) && (!hasPrefix || m_prefixFilter.selectedIndex == 0 || TLMDepotAI.getPrefixesServedByDepot(buildingID, info == ai.m_secondaryTransportInfo).Contains((uint)(m_prefixFilter.selectedIndex - 1)))) { AddToList(buildingID, info == ai.m_secondaryTransportInfo, ref count); } } } } RemoveExtraLines(count); switch (m_LastSortCriterion) { case DepotSortCriterion.NAME: OnNameSort(); break; case DepotSortCriterion.DISTRICT: OnDistrictSort(); break; } isUpdated = true; }