Exemplo n.º 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)));
        }
Exemplo n.º 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;
        }
Exemplo n.º 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;
        }
Exemplo n.º 4
0
        public void TrackingOverview(IWindow parent = null)
        {
            List <Mission> missions = Mission.LoadMissions();

            _trackingOverviewWindow = new TrackingOverviewWindow(this);
            WindowManager.Open(_trackingOverviewWindow, parent: parent);

            List <TrackingOverviewWindow.MissionItem> missionItems = new List <TrackingOverviewWindow.MissionItem>();

            foreach (Mission mission in missions)
            {
                TrackingOverviewWindow.MissionItem missionItem = new TrackingOverviewWindow.MissionItem();
                missionItem.Mission = mission;
                switch (mission.Info.Type)
                {
                case 10:
                    missionItem.ValidCheckList = RoutineMission.RoutineMissionValid <RoutineArrivalMission>(mission);
                    break;

                case 20:
                    missionItem.ValidCheckList = RoutineMission.RoutineMissionValid <RoutineDepartureMission>(mission);
                    break;

                default:
                    continue;
                }
                missionItems.Add(missionItem);
            }

            _trackingOverviewWindow.MissionItems = missionItems;
        }
Exemplo n.º 5
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;
        }
Exemplo n.º 6
0
        public void TrackingDetail(Mission trackingMission, IWindow parent = null, Tracking vesselTracking = null)
        {
            CancelTrackingDetail();
            _trackingDetailWindow = new TrackingDetailWindow();
            WindowManager.Open(_trackingDetailWindow, parent: parent);

            _trackingDetailWindow.TrackingMission = trackingMission;
            _trackingDetailWindow.VesselTracking  = vesselTracking;
            switch (trackingMission.Info.Type)
            {
            case 10:
                _trackingDetailWindow.ValidCheckList = RoutineMission.RoutineMissionValid <RoutineArrivalMission>(trackingMission);
                break;

            case 20:
                _trackingDetailWindow.ValidCheckList = RoutineMission.RoutineMissionValid <RoutineDepartureMission>(trackingMission);
                break;
            }
        }