private void saveSubcategoryList(bool global) { if (global == globalLoaded) { TLMConfigWarehouse loadedConfig; if (global) { loadedConfig = TLMConfigWarehouse.getConfig(TLMConfigWarehouse.GLOBAL_CONFIG_INDEX, TLMConfigWarehouse.GLOBAL_CONFIG_INDEX); } else { loadedConfig = TransportLinesManagerMod.instance.currentLoadedCityConfig; } var value = string.Join(PREFIX_COMMA, cached_prefixConfigList.Select(x => x.Key.ToString() + PREFIX_SEPARATOR + string.Join(PROPERTY_COMMA, x.Value.Select(y => y.Key.ToString() + PROPERTY_SEPARATOR + y.Value).ToArray())).ToArray()); if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("NEW VALUE ({0}): {1}", definition.ToString(), value); } loadedConfig.setString(configKeyForAssets, value); if (global) { cached_prefixConfigListGlobal = cached_prefixConfigList; } else { cached_prefixConfigListNonGlobal = cached_prefixConfigList; } } else { TLMUtils.doErrorLog("Trying to save a different global file subcategory list!!!"); } }
public Dictionary <uint, Dictionary <T, string> > LoadConfig(TLMConfigWarehouse.ConfigIndex idx, bool global = false) { var result = new Dictionary <uint, Dictionary <T, string> >(); if (TLMSingleton.instance != null && TLMSingleton.debugMode) { TLMUtils.doLog("{0} load()", idx); } string[] itemListLvl1; if (global && !AllowGlobal) { throw new Exception("CONFIGURAÇÂO NÃO GLOBAL TENTOU SER CARREGADA COMO GLOBAL: " + typeof(U)); } if (global) { itemListLvl1 = TLMConfigWarehouse.getConfig().getString(idx).Split(ItSepLvl1.ToCharArray()); } else { itemListLvl1 = TLMConfigWarehouse.getCurrentConfigString(idx).Split(ItSepLvl1.ToCharArray()); } if (itemListLvl1.Length > 0) { if (TLMSingleton.instance != null && TLMSingleton.debugMode) { TLMUtils.doLog("{0} load(): file.Length > 0", idx); } foreach (string s in itemListLvl1) { uint key = GetIndexFromStringArray(s); var value = GetValueFromStringArray(s); result[key] = value; } if (TLMSingleton.instance != null && TLMSingleton.debugMode) { TLMUtils.doLog("{0} load(): dic done", idx); } result.Remove(~0u); } return(result); }
protected void SaveConfig(Dictionary <uint, Dictionary <T, string> > target, TLMConfigWarehouse.ConfigIndex idx, bool global = false) { TLMConfigWarehouse loadedConfig; if (global && !AllowGlobal) { throw new Exception("CONFIGURAÇÂO NÃO GLOBAL TENTOU SER SALVA COMO GLOBAL: " + typeof(U)); } if (global) { loadedConfig = TLMConfigWarehouse.getConfig(TLMConfigWarehouse.GLOBAL_CONFIG_INDEX, TLMConfigWarehouse.GLOBAL_CONFIG_INDEX); } else { loadedConfig = TLMSingleton.instance.currentLoadedCityConfig; } var value = RecursiveEncode(target); if (TLMSingleton.instance != null && TLMSingleton.debugMode) { TLMUtils.doLog("saveConfig ({0}) NEW VALUE: {1}", idx, value); } loadedConfig.setString(idx, value); }
private void loadAuxiliarVars(bool global, bool force = false) { if ((global && cached_prefixConfigListGlobal == null) || (!global && cached_prefixConfigListNonGlobal == null) || force) { if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("loadAuxiliarVars: IN!"); } string[] file; if (global) { if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("loadAuxiliarVars: IF!"); } file = TLMConfigWarehouse.getConfig(TLMConfigWarehouse.GLOBAL_CONFIG_INDEX, TLMConfigWarehouse.GLOBAL_CONFIG_INDEX).getString(configKeyForAssets).Split(PREFIX_COMMA.ToCharArray()); } else { if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("loadAuxiliarVars: ELSE!"); } file = TLMConfigWarehouse.getCurrentConfigString(configKeyForAssets).Split(PREFIX_COMMA.ToCharArray()); } cached_prefixConfigList = new Dictionary <uint, Dictionary <PrefixConfigIndex, string> >(); if (file.Length > 0) { if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("loadAuxiliarVars: file.Length > 0"); } foreach (string s in file) { uint key = getIndexFromStringArray(s); var value = getValueFromStringArray(s); cached_prefixConfigList[key] = value; } if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("loadAuxiliarVars: dic done"); } cached_prefixConfigList.Remove(0xFFFFFFFF); } else { if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("loadAuxiliarVars: file.Length == 0"); } cached_prefixConfigList = new Dictionary <uint, Dictionary <PrefixConfigIndex, string> >(); } basicAssetsList = new List <string>(); if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("loadAuxiliarVars: pre prefab read"); } for (uint num = 0u; (ulong)num < (ulong)((long)PrefabCollection <VehicleInfo> .PrefabCount()); num += 1u) { VehicleInfo prefab = PrefabCollection <VehicleInfo> .GetPrefab(num); if (!(prefab == null) && definition.isFromSystem(prefab) && !isTrailer(prefab)) { basicAssetsList.Add(prefab.name); } } if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("loadAuxiliarVars: pre models Check"); } foreach (uint prefix in cached_prefixConfigList.Keys) { if (cached_prefixConfigList[prefix].ContainsKey(PrefixConfigIndex.MODELS)) { var temp = cached_prefixConfigList[prefix][PrefixConfigIndex.MODELS].Split(PROPERTY_VALUE_COMMA.ToCharArray()).ToList(); for (int i = 0; i < temp.Count; i++) { string assetId = temp[i]; if (PrefabCollection <VehicleInfo> .FindLoaded(assetId) == null) { temp.RemoveAt(i); i--; } } cached_prefixConfigList[prefix][PrefixConfigIndex.MODELS] = string.Join(PROPERTY_VALUE_COMMA, temp.ToArray()); } } if (TransportLinesManagerMod.instance != null && TransportLinesManagerMod.debugMode) { TLMUtils.doLog("loadAuxiliarVars: pos models Check"); } saveSubcategoryList(global); } }