internal void ReloadVehicle() { m_middleBar.isVisible = !(CurrentVehicleInfo is null); m_containerSelectionDescription.isVisible = !(CurrentVehicleInfo is null); if (!(CurrentVehicleInfo is null)) { WTSVehicleTextsSingleton.GetTargetDescriptor(CurrentVehicleInfo.name, out ConfigurationSource source, out LayoutDescriptorVehicleXml target); m_labelSelectionDescription.text = (CurrentVehicleInfo.name?.EndsWith("_Data") ?? false) ? Locale.Get("VEHICLE_TITLE", CurrentVehicleInfo.name) + "\n" : $"{CurrentVehicleInfo.name}\n"; m_labelSelectionDescription.suffix = $"{Locale.Get("K45_WTS_CURRENTLY_USING")}: {Locale.Get("K45_WTS_CONFIGURATIONSOURCE", source.ToString())}"; EditingInstance = target; CurrentConfigurationSource = source; EventOnVehicleSelectionChanged?.Invoke(EditingInstance, CurrentConfigurationSource); m_btnNew.isVisible = CurrentConfigurationSource != ConfigurationSource.CITY; m_btnCopyToCity.isVisible = CurrentConfigurationSource != ConfigurationSource.CITY && CurrentConfigurationSource != ConfigurationSource.NONE; m_btnDelete.isVisible = CurrentConfigurationSource == ConfigurationSource.CITY; m_btnExport.isVisible = CurrentConfigurationSource == ConfigurationSource.CITY; m_btnSteam.isVisible = CurrentConfigurationSource == ConfigurationSource.CITY && CurrentVehicleInfo.name.EndsWith("_Data"); OnTabChange(0); } m_editArea.isVisible = !(CurrentVehicleInfo is null) && CurrentConfigurationSource == ConfigurationSource.CITY; m_cantEditText.isVisible = CurrentConfigurationSource == ConfigurationSource.ASSET || CurrentConfigurationSource == ConfigurationSource.GLOBAL; m_plusButton.isVisible = !(CurrentVehicleInfo is null) && CurrentConfigurationSource == ConfigurationSource.CITY; m_editTabstrip.isVisible = !(CurrentVehicleInfo is null) && CurrentConfigurationSource != ConfigurationSource.NONE; m_btnCopy.isVisible = !(CurrentVehicleInfo is null); m_btnPaste.isVisible = m_clipboard != null && CurrentConfigurationSource == ConfigurationSource.CITY; }
private void ExportTo(string output) { if (!(CurrentVehicleInfo is null)) { var assetId = CurrentVehicleInfo.name.Split('.')[0] + "."; var descriptorsToExport = new List <LayoutDescriptorVehicleXml>(); foreach (string assetName in VehiclesIndexes.instance.PrefabsLoaded .Where((x) => x.Value.name.StartsWith(assetId) || x.Value.name == CurrentVehicleInfo.name) .Select(x => x.Value.name)) { WTSVehicleTextsSingleton.GetTargetDescriptor(assetName, out _, out LayoutDescriptorVehicleXml target); if (target != null) { target.VehicleAssetName = assetName; descriptorsToExport.Add(target); } } if (descriptorsToExport.Count > 0) { var exportableLayouts = new ExportableLayoutDescriptorVehicleXml { Descriptors = descriptorsToExport.ToArray() }; File.WriteAllText(output, XmlUtils.DefaultXmlSerialize(exportableLayouts)); WriteTheSignsMod.Controller?.VehicleTextsSingleton?.LoadAllVehiclesConfigurations(); } } }