Ejemplo n.º 1
0
            protected override void RenderWindow(int window_id)
            {
                using (new UnityEngine.GUILayout.VerticalScope()) {
                    if (!adapter_.PluginRunning())
                    {
                        UnityEngine.GUILayout.Label(
                            text: Localizer.Format("#Principia_MainWindow_PluginNotStarted"),
                            style: Style.Warning(UnityEngine.GUI.skin.label));
                    }
                    if (DateTimeOffset.Now > next_release_date_)
                    {
                        if (Versioning.version_minor <= 7)
                        {
                            UnityEngine.GUILayout.TextArea(
                                Localizer.Format(
                                    "#Principia_MainWindow_NewMoonAnnouncementWithKspDeprecation",
                                    next_release_lunation_number_,
                                    next_release_name_,
                                    "1.8.1"),
                                style: Style.Multiline(UnityEngine.GUI.skin.textArea));
                        }
                        else
                        {
                            UnityEngine.GUILayout.TextArea(
                                Localizer.Format("#Principia_MainWindow_NewMoonAnnouncement",
                                                 next_release_lunation_number_,
                                                 next_release_name_),
                                style: Style.Multiline(UnityEngine.GUI.skin.textArea));
                        }
                    }
                    Interface.GetVersion(build_date: out string _,
                                         version: out string version);
                    UnityEngine.GUILayout.Label(version,
                                                style: Style.Info(
                                                    UnityEngine.GUI.skin.label));
                    history_length_.Render(enabled: true);
                    if (MapView.MapIsEnabled &&
                        FlightGlobals.ActiveVessel?.orbitTargeter != null)
                    {
                        show_selection_ui_ = true;
                        using (new UnityEngine.GUILayout.HorizontalScope()) {
                            selecting_active_vessel_target = UnityEngine.GUILayout.Toggle(
                                selecting_active_vessel_target,
                                Localizer.Format("#Principia_MainWindow_TargetVessel_Select"));
                            if (selecting_active_vessel_target)
                            {
                                selecting_target_celestial_ = false;
                            }
                            if (FlightGlobals.fetch.VesselTarget?.GetVessel())
                            {
                                UnityEngine.GUILayout.Label(
                                    Localizer.Format("#Principia_MainWindow_TargetVessel_Name",
                                                     FlightGlobals.fetch.VesselTarget.GetVessel().
                                                     vesselName),
                                    UnityEngine.GUILayout.ExpandWidth(true));
                                if (UnityEngine.GUILayout.Button(
                                        Localizer.Format(
                                            "#Principia_MainWindow_TargetVessel_Clear"),
                                        GUILayoutWidth(2)))
                                {
                                    selecting_active_vessel_target = false;
                                    FlightGlobals.fetch.SetVesselTarget(null);
                                }
                                if (UnityEngine.GUILayout.Button(
                                        Localizer.Format(
                                            "#Principia_MainWindow_TargetVessel_SwitchTo")))
                                {
                                    var focus_object =
                                        new KSP.UI.Screens.Mapview.MapContextMenuOptions.FocusObject(
                                            FlightGlobals.fetch.VesselTarget.GetVessel().orbitDriver);
                                    focus_object.onOptionSelected();
                                }
                            }
                        }
                    }
                    else
                    {
                        // This will remove the "Select" UI so it must shrink.
                        if (show_selection_ui_)
                        {
                            show_selection_ui_ = false;
                            Shrink();
                        }
                        selecting_active_vessel_target = false;
                    }

                    // The plugin is destroyed, e.g., when using the "Switch To" button.  Wait
                    // until it's back alive to display information that requires to cross the
                    // interface.
                    if (adapter_.PluginRunning())
                    {
                        plotting_frame_selector_.RenderButton();
                        using (new UnityEngine.GUILayout.HorizontalScope()) {
                            flight_planner_.RenderButton();
                            orbit_analyser_.RenderButton();
                        }
                        RenderToggleableSection(
                            name:
                            Localizer.Format("#Principia_MainWindow_PredictionSettings"),
                            show: ref show_prediction_settings_,
                            render: RenderPredictionSettings);
                    }
                    RenderToggleableSection(
                        name: Localizer.Format("#Principia_MainWindow_KspFeatures"),
                        show: ref show_ksp_features_,
                        render: RenderKSPFeatures);
                    RenderToggleableSection(
                        name: Localizer.Format("#Principia_MainWindow_LoggingSettings"),
                        show: ref show_logging_settings_,
                        render: RenderLoggingSettings);
                }
                UnityEngine.GUI.DragWindow();
            }
Ejemplo n.º 2
0
 protected override void RenderWindow(int window_id)
 {
     using (new UnityEngine.GUILayout.VerticalScope()) {
         if (plugin == IntPtr.Zero)
         {
             UnityEngine.GUILayout.Label(
                 text: "Plugin is not started",
                 style: Style.Warning(UnityEngine.GUI.skin.label));
         }
         if (DateTimeOffset.Now > next_release_date_)
         {
             UnityEngine.GUILayout.TextArea(
                 "Announcement: the new moon of lunation number " +
                 next_release_lunation_number_ +
                 " has come; please download the latest Principia release, " +
                 next_release_name_ + ".");
         }
         Interface.GetVersion(build_date: out string unused_build_date,
                              version: out string version);
         UnityEngine.GUILayout.Label(
             version,
             style: Style.Info(UnityEngine.GUI.skin.label));
         bool changed_history_length = false;
         RenderSelector(history_lengths_,
                        ref history_length_index_,
                        "Max history length",
                        ref changed_history_length,
                        "{0:0.00e00} s");
         if (MapView.MapIsEnabled &&
             FlightGlobals.ActiveVessel?.orbitTargeter != null)
         {
             show_selection_ui = true;
             using (new UnityEngine.GUILayout.HorizontalScope()) {
                 selecting_active_vessel_target = UnityEngine.GUILayout.Toggle(
                     selecting_active_vessel_target, "Select target vessel...");
                 if (selecting_active_vessel_target)
                 {
                     selecting_target_celestial_ = false;
                 }
                 if (FlightGlobals.fetch.VesselTarget?.GetVessel())
                 {
                     UnityEngine.GUILayout.Label(
                         "Target: " +
                         FlightGlobals.fetch.VesselTarget.GetVessel().vesselName,
                         UnityEngine.GUILayout.ExpandWidth(true));
                     if (UnityEngine.GUILayout.Button("Clear", GUILayoutWidth(2)))
                     {
                         selecting_active_vessel_target = false;
                         FlightGlobals.fetch.SetVesselTarget(null);
                     }
                     if (UnityEngine.GUILayout.Button("Switch To"))
                     {
                         var focus_object =
                             new KSP.UI.Screens.Mapview.MapContextMenuOptions.FocusObject(
                                 FlightGlobals.fetch.VesselTarget.GetVessel().orbitDriver);
                         focus_object.onOptionSelected();
                     }
                 }
             }
         }
         else
         {
             // This will remove the "Select" UI so it must shrink.
             if (show_selection_ui)
             {
                 show_selection_ui = false;
                 Shrink();
             }
             selecting_active_vessel_target = false;
         }
         if (plugin != IntPtr.Zero)
         {
             plotting_frame_selector_.RenderButton();
             flight_planner_.RenderButton();
         }
         RenderToggleableSection(name: "Prediction Settings",
                                 show: ref show_prediction_settings_,
                                 render: RenderPredictionSettings);
         RenderToggleableSection(name: "KSP Features",
                                 show: ref show_ksp_features_,
                                 render: RenderKSPFeatures);
         RenderToggleableSection(name: "Logging Settings",
                                 show: ref show_logging_settings_,
                                 render: RenderLoggingSettings);
     }
     UnityEngine.GUI.DragWindow();
 }
Ejemplo n.º 3
0
            protected override void RenderWindow(int window_id)
            {
                using (new UnityEngine.GUILayout.VerticalScope()) {
                    if (!adapter_.PluginRunning())
                    {
                        UnityEngine.GUILayout.Label(
                            text: "Plugin is not started",
                            style: Style.Warning(UnityEngine.GUI.skin.label));
                    }
                    if (DateTimeOffset.Now > next_release_date_)
                    {
                        if (Versioning.version_minor <= 7)
                        {
                            UnityEngine.GUILayout.TextArea(
                                "Announcement: the new moon of lunation number " +
                                next_release_lunation_number_ +
                                " has come; please update KSP to version 1.8.1 and download " +
                                "the latest Principia release, " + next_release_name_ + ". " +
                                "Note that RealismOverhaul and RealSolarSystem now support " +
                                "KSP 1.8.1.",
                                style: Style.Multiline(UnityEngine.GUI.skin.textArea));
                        }
                        else
                        {
                            UnityEngine.GUILayout.TextArea(
                                "Announcement: the new moon of lunation number " +
                                next_release_lunation_number_ +
                                " has come; please download the latest Principia release, " +
                                next_release_name_ + ".",
                                style: Style.Multiline(UnityEngine.GUI.skin.textArea));
                        }
                    }
                    Interface.GetVersion(build_date: out string _,
                                         version: out string version);
                    UnityEngine.GUILayout.Label(
                        version,
                        style: Style.Info(UnityEngine.GUI.skin.label));
                    history_length_.Render(enabled: true);
                    if (MapView.MapIsEnabled &&
                        FlightGlobals.ActiveVessel?.orbitTargeter != null)
                    {
                        show_selection_ui_ = true;
                        using (new UnityEngine.GUILayout.HorizontalScope()) {
                            selecting_active_vessel_target = UnityEngine.GUILayout.Toggle(
                                selecting_active_vessel_target, "Select target vessel...");
                            if (selecting_active_vessel_target)
                            {
                                selecting_target_celestial_ = false;
                            }
                            if (FlightGlobals.fetch.VesselTarget?.GetVessel())
                            {
                                UnityEngine.GUILayout.Label(
                                    "Target: " +
                                    FlightGlobals.fetch.VesselTarget.GetVessel().vesselName,
                                    UnityEngine.GUILayout.ExpandWidth(true));
                                if (UnityEngine.GUILayout.Button("Clear", GUILayoutWidth(2)))
                                {
                                    selecting_active_vessel_target = false;
                                    FlightGlobals.fetch.SetVesselTarget(null);
                                }
                                if (UnityEngine.GUILayout.Button("Switch To"))
                                {
                                    var focus_object =
                                        new KSP.UI.Screens.Mapview.MapContextMenuOptions.FocusObject(
                                            FlightGlobals.fetch.VesselTarget.GetVessel().orbitDriver);
                                    focus_object.onOptionSelected();
                                }
                            }
                        }
                    }
                    else
                    {
                        // This will remove the "Select" UI so it must shrink.
                        if (show_selection_ui_)
                        {
                            show_selection_ui_ = false;
                            Shrink();
                        }
                        selecting_active_vessel_target = false;
                    }

                    // The plugin is destroyed, e.g., when using the "Switch To" button.  Wait
                    // until it's back alive to display information that requires to cross the
                    // interface.
                    if (adapter_.PluginRunning())
                    {
                        plotting_frame_selector_.RenderButton();
                        using (new UnityEngine.GUILayout.HorizontalScope()) {
                            flight_planner_.RenderButton();
                            orbit_analyser_.RenderButton();
                        }
                        RenderToggleableSection(name: "Prediction Settings",
                                                show: ref show_prediction_settings_,
                                                render: RenderPredictionSettings);
                    }
                    RenderToggleableSection(name: "KSP Features",
                                            show: ref show_ksp_features_,
                                            render: RenderKSPFeatures);
                    RenderToggleableSection(name: "Logging Settings",
                                            show: ref show_logging_settings_,
                                            render: RenderLoggingSettings);
                }
                UnityEngine.GUI.DragWindow();
            }