Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 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"));
 }