public RunwayUse GetUse(string designator) { RunwayUse ru = RunwayUses.SingleOrDefault(rwu => rwu.Designator == designator); if (ru == null) { ru = new RunwayUse(designator); RunwayUses.Add(ru); } return(ru); }
public void ParseRunwayVfrUse(string line, List <Runway> runways) { string[] tokens = line.Split(_splitters, StringSplitOptions.RemoveEmptyEntries); RunwayUse ru = GetUse(tokens[1]); ru.Arrivals = true; ru.Departures = true; ru.XpTypes.Add(XPlaneAircraftType.Prop); // Very cautious, though types from other rules for this runway will be added as well. Runway r = runways.SingleOrDefault(rw => rw.Designator == tokens[1]); if (r != null) { r.AvailableForVFR = true; } }
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; } } }