private void onChangeColor(UIComponent component, Color value) { if (m_isLoading) { return; } LogUtils.DoLog("onChangeColor"); ServiceSystemDefinition ssd = SingletonLite <T> .instance.GetSSD(); IVMCBuildingExtension ext = ssd.GetBuildingExtension(); ushort buildingId = m_buildingInfo.buildingIdSel.Building; if (ext.GetIgnoreDistrict(buildingId)) { ext.SetColor(buildingId, value); } else { ssd.GetDistrictExtension().SetColor(BuildingUtils.GetBuildingDistrict(buildingId), value); } }
private void PopulateCheckboxes() { foreach (string i in m_checkboxes.Keys) { UnityEngine.Object.Destroy(m_checkboxes[i].gameObject); } ServiceSystemDefinition ssd = SingletonLite <T> .instance.GetSSD(); m_defaultAssets = ssd.GetBuildingExtension().GetAllBasicAssets(); m_checkboxes = new Dictionary <string, UICheckBox>(); LogUtils.DoLog("m_defaultAssets Size = {0} ({1})", m_defaultAssets?.Count, string.Join(",", m_defaultAssets.Keys?.ToArray() ?? new string[0])); foreach (string i in m_defaultAssets.Keys) { var checkbox = (UICheckBox)m_uiHelper.AddCheckbox(m_defaultAssets[i], false, (x) => { IVMCBuildingExtension ext = SingletonLite <T> .instance.GetSSD().GetBuildingExtension(); ushort buildingId = m_buildingInfo.buildingIdSel.Building; if (m_isLoading) { return; } if (x) { if (ext.GetIgnoreDistrict(buildingId)) { ext.AddAsset(buildingId, i); } else { SingletonLite <T> .instance.GetSSD().GetDistrictExtension().AddAsset(BuildingUtils.GetBuildingDistrict(buildingId), i); } } else { if (ext.GetIgnoreDistrict(buildingId)) { ext.RemoveAsset(buildingId, i); } else { SingletonLite <T> .instance.GetSSD().GetDistrictExtension().RemoveAsset(BuildingUtils.GetBuildingDistrict(buildingId), i); } } }); CreateModelCheckBox(i, checkbox); checkbox.label.tooltip = checkbox.label.text; checkbox.label.textScale = 0.9f; checkbox.label.transform.localScale = new Vector3(Math.Min((m_mainPanel.width - 50) / checkbox.label.width, 1), 1); m_checkboxes[i] = checkbox; } }
private void OnBuildingChange(ushort buildingId) { LogUtils.DoLog("EventOnBuildingSelChanged"); m_isLoading = true; IEnumerable <ServiceSystemDefinition> ssds = ServiceSystemDefinition.from(Singleton <BuildingManager> .instance.m_buildings.m_buffer[buildingId].Info); if (!ssds.Contains(SingletonLite <T> .instance.GetSSD())) { m_mainPanel.isVisible = false; return; } m_mainPanel.isVisible = true; ServiceSystemDefinition ssd = SingletonLite <T> .instance.GetSSD(); IVMCBuildingExtension ext = ssd.GetBuildingExtension(); bool isCustomConfig = ext.GetIgnoreDistrict(buildingId); LogUtils.DoLog("ssd = {0}", ssd); List <string> selectedAssets; Color selectedColor; if (isCustomConfig) { selectedAssets = ext.GetAssetList(buildingId); selectedColor = ext.GetColor(buildingId); } else { ushort districtId = BuildingUtils.GetBuildingDistrict(buildingId); IVMCDistrictExtension distExt = ssd.GetDistrictExtension(); selectedAssets = distExt.GetAssetList(districtId); selectedColor = distExt.GetColor(districtId); } foreach (string i in m_checkboxes.Keys) { m_checkboxes[i].isChecked = selectedAssets?.Contains(i) ?? false; } if (m_color != null) { m_color.selectedColor = selectedColor; } if (isCustomConfig) { m_title.text = string.Format(Locale.Get("K45_VMC_ASSET_SELECT_WINDOW_TITLE"), Singleton <BuildingManager> .instance.GetBuildingName(buildingId, default), ssd.NameForServiceSystem); } else { ushort districtId = BuildingUtils.GetBuildingDistrict(buildingId); if (districtId > 0) { m_title.text = string.Format(Locale.Get("K45_VMC_ASSET_SELECT_WINDOW_TITLE_DISTRICT"), Singleton <DistrictManager> .instance.GetDistrictName(districtId), ssd.NameForServiceSystem); } else { m_title.text = string.Format(Locale.Get("K45_VMC_ASSET_SELECT_WINDOW_TITLE_CITY"), ssd.NameForServiceSystem); } } m_isLoading = false; m_previewPanel.isVisible = false; }