Exemple #1
0
        /// <summary>
        /// Get distance to a target of a vessel based on the index in list of controllers
        /// </summary>
        /// <param name="controllerIndex"></param>
        /// <returns></returns>
        private string GetDistanceToTarget(int controllerIndex)
        {
            string       result     = "-";
            BVController controller = BonVoyage.Instance.BVControllers[controllerIndex];

            if ((controller.GetVesselState() == VesselState.Moving) || (controller.GetVesselState() == VesselState.AwaitingSunlight))
            {
                result = Tools.ConvertDistanceToText(controller.RemainingDistanceToTarget);
            }

            return(result);
        }
Exemple #2
0
        /// <summary>
        /// Get speed of a vessel based on the index in list of controllers
        /// </summary>
        /// <param name="controllerIndex"></param>
        /// <returns></returns>
        private string GetSpeed(int controllerIndex)
        {
            string       result     = "-";
            BVController controller = BonVoyage.Instance.BVControllers[controllerIndex];

            if ((controller.GetVesselState() == VesselState.Moving) || (controller.GetVesselState() == VesselState.AwaitingSunlight))
            {
                result = controller.AverageSpeed.ToString("0.##") + " m/s";
            }

            return(result);
        }
        /// <summary>
        /// Get distance to a target of a vessel based on the index in list of controllers
        /// </summary>
        /// <param name="controllerIndex"></param>
        /// <returns></returns>
        private string GetDistanceToTarget(BVController controller)
        {
            string result = "-";

            if (controller == null)
            {
                return(result);
            }

            if ((controller.GetVesselState() == VesselState.Moving) || (controller.GetVesselState() == VesselState.AwaitingSunlight))
            {
                result = Tools.ConvertDistanceToText(controller.RemainingDistanceToTarget);
            }
            return(result);
        }
        /// <summary>
        /// Get speed of a vessel based on the index in list of controllers
        /// </summary>
        /// <param name="controllerIndex"></param>
        /// <returns></returns>
        private string GetSpeed(BVController controller)
        {
            string result = "-";

            if (controller == null)
            {
                return(result);
            }

            if ((controller.GetVesselState() == VesselState.Moving) || (controller.GetVesselState() == VesselState.AwaitingSunlight))
            {
                result = controller.AverageSpeed.ToString("0.##") + " m/s";
            }
            return(result);
        }
        /// <summary>
        /// Create table row for controller
        /// </summary>
        /// <param name="controller"></param>
        /// <returns>DialogGUIHorizontalLayout row or null if controller state don't equals to selected filter</returns>
        private DialogGUIHorizontalLayout CreateListLayoutRow(BVController controller)
        {
            DialogGUIHorizontalLayout row = null;

            if ((activeControllersChecked && !controller.Shutdown) || (disabledControllersChecked && controller.Shutdown))
            {
                UIStyle statusStyle;
                switch (controller.GetVesselState())
                {
                case VesselState.Current:
                    statusStyle = CommonWindowProperties.Style_Label_Normal_Center_White;
                    break;

                case VesselState.Idle:
                    statusStyle = CommonWindowProperties.Style_Label_Normal_Center_Grey;
                    break;

                case VesselState.ControllerDisabled:
                    statusStyle = CommonWindowProperties.Style_Label_Normal_Center_Red;
                    break;

                case VesselState.AwaitingSunlight:
                    statusStyle = CommonWindowProperties.Style_Label_Normal_Center_Yellow;
                    break;

                case VesselState.Moving:
                    statusStyle = CommonWindowProperties.Style_Label_Normal_Center_Green;
                    break;

                default:
                    statusStyle = CommonWindowProperties.Style_Label_Normal_Center_Grey;
                    break;
                }

                row = new DialogGUIHorizontalLayout(
                    new DialogGUILabel(controller.vessel.GetDisplayName(), 150f),
                    new DialogGUISpace(10f),
                    new DialogGUILabel(controller.GetVesselStateText(), 70f)
                {
                    guiStyle = statusStyle
                },
                    new DialogGUISpace(10f),
                    new DialogGUILabel(controller.vessel.mainBody.bodyDisplayName.Replace("^N", ""), 60f)
                {
                    guiStyle = CommonWindowProperties.Style_Label_Normal_Center
                },
                    new DialogGUISpace(10f),
                    new DialogGUILabel(delegate { return(GetSpeed(controller)); }, 60f)
                {
                    guiStyle = CommonWindowProperties.Style_Label_Normal_Center
                },
                    new DialogGUISpace(10f),
                    new DialogGUILabel(delegate { return(GetDistanceToTarget(controller)); }, 90f)
                {
                    guiStyle = CommonWindowProperties.Style_Label_Normal_Center
                },
                    new DialogGUISpace(10f),
                    (
                        !controller.vessel.isActiveVessel
                        ?
                        TooltipExtension.DeferTooltip(new DialogGUIButton("->",
                                                                          delegate { SwitchToVessel(controller.vessel.id); }, 22f, 16f, false)
                {
                    tooltipText = (Localizer.Format("#LOC_BV_SwitchTo") + " " + controller.vessel.GetDisplayName())
                })
                        :
                        new DialogGUISpace(10f)
                    )

                    );
                row.SetOptionText(controller.vessel.id.ToString());    // ID of the row (vessel ID)
                controller.OnStateChanged += OnControllerStateChanged; // Register state changed event
            }

            return(row);
        }