コード例 #1
0
        private void trackArrival(Part dockedPort)
        {
            MissionArrival arrival = new MissionArrival
            {
                Time             = Planetarium.GetUniversalTime(),
                Body             = vessel.mainBody.name,
                Orbit            = MissionOrbit.GetMissionOrbit(vessel.orbit),
                flightIDDockPart = dockedPort.flightID,
                Crew             = (int)trackCrew,
                CrewCapacity     = (int)trackCrewCapacity,
                Parts            = MissionPart.GetMissionPartList(RmmUtil.GetDockedParts(vessel, dockedPort))
            };

            _mission.TrackArrival(arrival);

            trackingActive  = false;
            trackingPrimary = false;
            trackingStatus  = "Arrived";

            //-----------------------
            StoreVesselSnapShot("arrival");

            _partModule.PortCode = "";


            ScreenMessages.PostScreenMessage("mission tracking-ARRIVAL", 4, ScreenMessageStyle.UPPER_CENTER);
            _partModule.nextLogicTime = 0;
            updateTrackingVars(vessel);
            updateNextLogicTime(vessel);
        }
コード例 #2
0
        public override void WindowUI()
        {
            GUILayout.BeginVertical();

            scrollPositionTracking = GUILayout.BeginScrollView(scrollPositionTracking, false, false, RmmStyle.Instance.HoriScrollBarStyle, RmmStyle.Instance.VertiScrollBarStyle, GUILayout.Width(390), GUILayout.Height(500));

            if (VesselTracking != null)
            {
                if (GUILayout.Button("End Current Vessel Tracking", RmmStyle.Instance.ButtonStyle, GUILayout.Width(150), GUILayout.Height(22)))
                {
                    _trackingControl.EndVesselTracking(VesselTracking);
                }
            }

            float labelWidth = 350;

            if (TrackingMission != null)
            {
                if (TrackingMission.Info != null)
                {
                    MissionInfo info = TrackingMission.Info;

                    GUILayout.Label("INFO", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Type:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(info.Type.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Name:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(info.Name.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                }
                if (TrackingMission.Launch != null)
                {
                    MissionLaunch launch = TrackingMission.Launch;

                    GUILayout.Label("", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("LAUNCH", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Time:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(launch.Time.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Body:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(launch.Body.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Vessel:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(launch.VesselName.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Value:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(launch.Funds.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Crew:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(launch.Crew.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Parts:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label((launch.Parts == null ? "0" : launch.Parts.Count.ToString()), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                }
                if (TrackingMission.Departure != null)
                {
                    MissionDeparture departure = TrackingMission.Departure;

                    GUILayout.Label("", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("DEPARTURE", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Time:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(departure.Time.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Body:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(departure.Body.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Crew:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(departure.Crew.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Crew capacity:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(departure.CrewCapacity.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Parts:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label((departure.Parts == null ? "no parts tracked" : departure.Parts.Count.ToString()), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    if (departure.Resources != null)
                    {
                        foreach (MissionResource resource in departure.Resources)
                        {
                            GUILayout.Label(resource.Name + " " + resource.Amount.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        }
                    }
                    if (departure.Proppellants != null)
                    {
                        foreach (String proppellant in departure.Proppellants)
                        {
                            GUILayout.Label("Proppellant " + proppellant, RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        }
                    }
                }
                if (TrackingMission.Landings != null)
                {
                    foreach (MissionLanding landing in TrackingMission.Landings)
                    {
                        GUILayout.Label("", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label("LANDING", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label("Time:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label(landing.Time.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label("Body:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label(landing.Body.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label("Value:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label(landing.Funds.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label("Crew:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label(landing.Crew.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label("Crew capacity:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label(landing.CrewCapacity.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label("Parts:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        GUILayout.Label((landing.Parts == null ? "no parts tracked" : landing.Parts.Count.ToString()), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                        if (landing.Resources != null)
                        {
                            foreach (MissionResource resource in landing.Resources)
                            {
                                GUILayout.Label(resource.Name + " " + resource.Amount.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                            }
                        }
                    }
                }
                if (TrackingMission.Arrival != null)
                {
                    MissionArrival arrival = TrackingMission.Arrival;

                    GUILayout.Label("", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("ARRIVAL", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Time:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(arrival.Time.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Body:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(arrival.Body.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Crew:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(arrival.Crew.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Crew capacity:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label(arrival.CrewCapacity.ToString(), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label("Parts:", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    GUILayout.Label((arrival.Parts == null ? "no parts tracked" : arrival.Parts.Count.ToString()), RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                }
            }

            if (ValidCheckList != null)
            {
                GUILayout.Label("", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));

                if (ValidCheckList.CheckSucces)
                {
                    GUILayout.Label("Valid", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                }
                else
                {
                    GUILayout.Label("Invalid", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    foreach (String message in ValidCheckList.Messages)
                    {
                        GUILayout.Label(message, RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                    }
                }
            }

            if (VesselTracking == null)
            {
                GUILayout.Label("", RmmStyle.Instance.LabelStyle, GUILayout.Width(labelWidth));
                if (GUILayout.Button("Delete Tracking", RmmStyle.Instance.ButtonStyle, GUILayout.Width(50), GUILayout.Height(22)))
                {
                    _trackingControl.DeleteTracking(TrackingMission);
                }
            }

            GUILayout.EndScrollView();

            GUILayout.EndVertical();
        }