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); }
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; } } }