public int getCapacity(VehicleInfo info, bool noLoop = false) { if (info == null) { return(-1); } int capacity = TLMUtils.GetPrivateField <int>(info.GetAI(), "m_passengerCapacity"); try { if (!noLoop) { foreach (var trailer in info.m_trailers) { capacity += getCapacity(trailer.m_info, true); } } } catch (Exception e) { } return(capacity); }
private static void loadLocaleIntern(string localeId, bool setLocale = false) { string load = ResourceLoader.loadResourceString("UI.i18n." + localeId + ".properties"); if (load == null) { load = ResourceLoader.loadResourceString("UI.i18n.en.properties"); if (load == null) { TLMUtils.doErrorLog("LOCALE NOT LOADED!!!!"); return; } localeId = "en"; } var locale = TLMUtils.GetPrivateField <Locale>(LocaleManager.instance, "m_Locale"); Locale.Key k; foreach (var myString in load.Split(new string[] { lineSeparator }, StringSplitOptions.RemoveEmptyEntries)) { if (myString.StartsWith(commentChar)) { continue; } if (!myString.Contains(kvSeparator)) { continue; } var array = myString.Split(kvSeparator.ToCharArray(), 2); string value = array[1]; int idx = 0; string localeKey = null; if (array[0].Contains(idxSeparator)) { var arrayIdx = array[0].Split(idxSeparator.ToCharArray()); if (!int.TryParse(arrayIdx[1], out idx)) { continue; } array[0] = arrayIdx[0]; } if (array[0].Contains(localeKeySeparator)) { array = array[0].Split(localeKeySeparator.ToCharArray()); localeKey = array[1]; } k = new Locale.Key() { m_Identifier = "TLM_" + array[0], m_Key = localeKey, m_Index = idx }; if (!locale.Exists(k)) { locale.AddLocalizedString(k, value.Replace("\\n", "\n")); } } if (localeId != "en") { loadLocaleIntern("en"); } if (setLocale) { language = localeId; } }
public static TransportSystemDefinition from(VehicleInfo info) { if (info == null) { return(default(TransportSystemDefinition)); } var result = availableDefinitions.Keys.FirstOrDefault(x => x.subService == info.m_class.m_subService && x.vehicleType == info.m_vehicleType && TLMUtils.HasField(info.GetAI(), "m_transportInfo") && TLMUtils.GetPrivateField <TransportInfo>(info.GetAI(), "m_transportInfo").m_transportType == x.transportType); return(result); }
public bool isFromSystem(VehicleInfo info) { return(info.m_class.m_subService == subService && info.m_vehicleType == vehicleType && TLMUtils.HasField(info.GetAI(), "m_transportInfo") && TLMUtils.GetPrivateField <TransportInfo>(info.GetAI(), "m_transportInfo").m_transportType == transportType && TLMUtils.HasField(info.GetAI(), "m_passengerCapacity")); }