public void CancelRoutineDepartureOverview() { if (_routineDepartureOverviewWindow != null) { WindowManager.Close(_routineDepartureOverviewWindow); _routineDepartureOverviewWindow = null; } }
public void RoutineDepartureOverview(IWindow parent = null) { _missions = Mission.LoadMissions();; CancelRoutineDepartureOverview(); _routineDepartureOverviewWindow = new RoutineDepartureOverviewWindow(this); WindowManager.Open(_routineDepartureOverviewWindow, parent: parent); List <RoutineDepartureMission> routineDepartureMissions = new List <RoutineDepartureMission>(); foreach (Mission mission in _missions) { if (mission.Info == null) { continue; } if (mission.Info.Type != 20) { continue; } var locationRoutineDepartureMission = RoutineMission.AssemblePotentialRoutineMission <RoutineDepartureMission>(mission); if (locationRoutineDepartureMission == null) { continue; } if (!locationRoutineDepartureMission.AllowedLocation(FlightGlobals.ActiveVessel).CheckSucces) { continue; } foreach (Part part in FlightGlobals.ActiveVessel.parts) { string name = RmmScenario.Instance.GetRegisteredDockingPort(part.flightID); if (!String.IsNullOrEmpty(name)) { Part dockedPart = RmmUtil.GetDockedPart(FlightGlobals.ActiveVessel, part); if (dockedPart != null) { var routineDepartureMission = RoutineMission.AssemblePotentialRoutineMission <RoutineDepartureMission>(mission); routineDepartureMission.flightIdDepartureDockPart = part.flightID; var check = routineDepartureMission.AllowedVessel(FlightGlobals.ActiveVessel); if (!routineDepartureMission.AllowedVessel(FlightGlobals.ActiveVessel).CheckSucces) { continue; } routineDepartureMissions.Add(routineDepartureMission); } } } } _routineDepartureOverviewWindow.RoutineDepartureMissions = routineDepartureMissions; }