/// <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); }
/// <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); }