public static List <RouteTimeTableEntry> GetAirportArrivals(Airport airport, int count) { List <RouteTimeTableEntry> entries = new List <RouteTimeTableEntry>(); foreach (Route route in AirportHelpers.GetAirportRoutes(airport)) { if (route.HasAirliner && route.getCurrentAirliner() != null) { RouteTimeTableEntry entry = route.getCurrentAirliner().CurrentFlight == null?route.TimeTable.getNextEntry(GameObject.GetInstance().GameTime, (airport == route.Destination1 ? route.Destination2 : route.Destination1)) : route.getCurrentAirliner().CurrentFlight.Entry; for (int i = 0; i < route.TimeTable.Entries.Count; i++) { if (entry.Destination.Airport == airport) { entries.Add(entry); } entry = route.TimeTable.getNextEntry(entry); } } } entries.Sort(delegate(RouteTimeTableEntry e1, RouteTimeTableEntry e2) { return(MathHelpers.ConvertEntryToDate(e1).CompareTo(MathHelpers.ConvertEntryToDate(e2))); }); return(entries.GetRange(0, Math.Min(entries.Count, count))); }
// chs, 2011-17-11 changed for showing departures and arrivals from one airport to another //returns the list of arrivals or departures from one airport to another public static List <RouteTimeTableEntry> GetAirportFlights(Airport fAirport, Airport tAirport, Boolean arrivals) { List <RouteTimeTableEntry> entries = new List <RouteTimeTableEntry>(); foreach (Route route in AirportHelpers.GetAirportRoutes(fAirport)) { if (route.HasAirliner && (route.Destination1 == tAirport || route.Destination2 == tAirport)) { RouteTimeTableEntry entry = route.getCurrentAirliner() == null || route.getCurrentAirliner().CurrentFlight == null || route.getCurrentAirliner().CurrentFlight.Entry == null?route.TimeTable.getNextEntry(GameObject.GetInstance().GameTime) : route.getCurrentAirliner().CurrentFlight.Entry; for (int i = 0; i < route.TimeTable.Entries.Count; i++) { if (!arrivals && entry.Destination.Airport == tAirport) { entries.Add(entry); } if (arrivals && entry.Destination.Airport == fAirport) { entries.Add(entry); } entry = route.TimeTable.getNextEntry(entry); } } } entries.Sort(delegate(RouteTimeTableEntry e1, RouteTimeTableEntry e2) { return(MathHelpers.ConvertEntryToDate(e1).CompareTo(MathHelpers.ConvertEntryToDate(e2))); }); return(entries); }
//returns the list of arrivals for an airport public static List <RouteTimeTableEntry> GetAirportArrivals(Airport airport, DayOfWeek day) { List <RouteTimeTableEntry> entries = new List <RouteTimeTableEntry>(); foreach (Route route in AirportHelpers.GetAirportRoutes(airport)) { if (route.HasAirliner) { var rEntries = route.TimeTable.Entries.Where(e => e.Day == day && e.Destination.Airport == airport); entries.AddRange(rEntries); } } entries.Sort(delegate(RouteTimeTableEntry e1, RouteTimeTableEntry e2) { return(MathHelpers.ConvertEntryToDate(e1).CompareTo(MathHelpers.ConvertEntryToDate(e2))); }); return(entries); }
public static List <RouteTimeTableEntry> GetAirportDepartures(Airport airport, int count) { List <RouteTimeTableEntry> entries = new List <RouteTimeTableEntry>(); foreach (Route route in AirportHelpers.GetAirportRoutes(airport)) { if (route.HasAirliner && route.getCurrentAirliner() != null) { RouteTimeTableEntry entry = route.getCurrentAirliner().CurrentFlight == null?route.TimeTable.getNextEntry(GameObject.GetInstance().GameTime, airport) : route.getCurrentAirliner().CurrentFlight.Entry; if (!entry.Destination.Airport.Profile.Coordinates.Equals(airport.Profile.Coordinates)) { entries.Add(entry); } while (entries.Count < 4) { entry = route.TimeTable.getNextEntry(entry); if (entry.Destination.Airport != airport) { entries.Add(entry); } } } } entries.Sort(delegate(RouteTimeTableEntry e1, RouteTimeTableEntry e2) { return(MathHelpers.ConvertEntryToDate(e1).CompareTo(MathHelpers.ConvertEntryToDate(e2))); }); return(entries.GetRange(0, Math.Min(entries.Count, count))); }