Пример #1
0
        private void ReadStartPoint(string line)
        {
            string[] tokens  = line.Split(_splitters, StringSplitOptions.RemoveEmptyEntries);
            string[] xpTypes = tokens[5].Split('|');

            Parking sp = new Parking(this)
            {
                Latitude     = VortexMath.ParseDegreesToRadians(tokens[1]),
                Longitude    = VortexMath.ParseDegreesToRadians(tokens[2]),
                Bearing      = ((VortexMath.Parse(tokens[3]) + 540) * VortexMath.Deg2Rad) % (VortexMath.PI2) - Math.PI,
                LocationType = StartUpLocationTypeConverter.FromString(tokens[4]),
                XpTypes      = AircraftTypeConverter.XPlaneTypesFromStrings(xpTypes),
                Name         = string.Join(" ", tokens.Skip(6))
            };

            if (Settings.FixDuplicateParkingNames)
            {
                if (_parkings.Count(p => p.Name == sp.Name) > 0)
                {
                    if (!_parkingNameDuplicates.ContainsKey(sp.Name))
                    {
                        _parkingNameDuplicates.Add(sp.Name, 1);
                    }

                    _parkingNameDuplicates[sp.Name]++;
                    sp.Name += $" - {_parkingNameDuplicates[sp.Name]}";
                    Logger.Log($"Renamed a parking to: {sp.Name}");
                }
            }

            _parkings.Add(sp);
        }
Пример #2
0
        public void ParseRunwayUse(string line, List <Runway> runways)
        {
            string[]  tokens = line.Split(_splitters, StringSplitOptions.RemoveEmptyEntries);
            RunwayUse ru     = GetUse(tokens[1]);

            ru.Arrivals   |= (tokens[3].Contains("arr"));
            ru.Departures |= (tokens[3].Contains("dep"));
            ru.XpTypes.AddRange(AircraftTypeConverter.XPlaneTypesFromStrings(tokens[4].Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)));

            Runway r = runways.SingleOrDefault(rw => rw.Designator == ru.Designator);

            if (r != null)
            {
                if (ru.Arrivals)
                {
                    r.AvailableForLanding = true;
                }

                if (ru.Departures)
                {
                    r.AvailableForTakeOff = true;
                }
            }
        }