Beispiel #1
0
        public void RoutineDepartureDetail(string missiondId, uint flightIdDepartureDockPart, IWindow parent = null)
        {
            CancelRoutineDepartureDetail();
            _routineDepartureDetailWindow = new RoutineDepartureDetailWindow(this);
            WindowManager.Open(_routineDepartureDetailWindow, parent: parent);

            RoutineDepartureMission routineDepartureMission = null;

            foreach (Mission mission in _missions)
            {
                if (mission.Info == null)
                {
                    continue;
                }
                if (mission.Info.Type != 20)
                {
                    continue;
                }
                if (mission.MissionId == missiondId)
                {
                    routineDepartureMission = RoutineMission.AssemblePotentialRoutineMission <RoutineDepartureMission>(mission);
                    routineDepartureMission.flightIdDepartureDockPart = flightIdDepartureDockPart;
                    if (!routineDepartureMission.AllowedVessel(FlightGlobals.ActiveVessel).CheckSucces)
                    {
                        continue;
                    }
                }
            }
            _routineDepartureDetailWindow.RoutineDepartureMission = routineDepartureMission;
            _routineDepartureDetailWindow.DepartureParts          = RmmUtil.GetDockedParts(FlightGlobals.ActiveVessel, RmmUtil.GetDockedPart(FlightGlobals.ActiveVessel, RmmUtil.GetVesselPart(FlightGlobals.ActiveVessel, flightIdDepartureDockPart)));
        }
Beispiel #2
0
        public void RoutineDetail(string missiondId, IWindow parent = null)
        {
            CancelRoutineDetail();
            _routineDetailWindow = new RoutineDetailWindow(this);
            WindowManager.Open(_routineDetailWindow, parent: parent);

            RoutineArrivalMission routineArrivalMission = null;

            foreach (Mission mission in _missions)
            {
                if (mission.Info == null)
                {
                    continue;
                }
                if (mission.Info.Type != 10)
                {
                    continue;
                }
                if (mission.MissionId == missiondId)
                {
                    routineArrivalMission = RoutineMission.AssemblePotentialRoutineMission <RoutineArrivalMission>(mission);
                    if (!routineArrivalMission.AllowedLocation(FlightGlobals.ActiveVessel).CheckSucces)
                    {
                        continue;
                    }
                }
            }
            _routineDetailWindow.RoutineArrivalMission = routineArrivalMission;
        }
Beispiel #3
0
        public void RoutineOverview(IWindow parent = null)
        {
            _missions = Mission.LoadMissions();
            CancelRoutineOverview();
            _routineOverviewWindow = new RoutineOverviewWindow(this);
            WindowManager.Open(_routineOverviewWindow, parent: parent);

            List <RoutineArrivalMission> routineArrivalMissions = new List <RoutineArrivalMission>();

            foreach (Mission mission in _missions)
            {
                if (mission.Info == null)
                {
                    continue;
                }
                if (mission.Info.Type != 10)
                {
                    continue;
                }
                var routineArrivalMission = RoutineMission.AssemblePotentialRoutineMission <RoutineArrivalMission>(mission);
                if (routineArrivalMission == null)
                {
                    continue;
                }

                var check = routineArrivalMission.AllowedLocation(FlightGlobals.ActiveVessel);
                if (!routineArrivalMission.AllowedLocation(FlightGlobals.ActiveVessel).CheckSucces)
                {
                    continue;
                }
                routineArrivalMissions.Add(routineArrivalMission);
            }
            _routineOverviewWindow.RoutineArrivalMissions = routineArrivalMissions;
        }
Beispiel #4
0
        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;
        }