private List <IBasicModule> AddTargetModules() { List <IBasicModule> modules = new List <IBasicModule>(); targetName = new TargetName("Target Name"); closest = new ClosestApproach("Closest Approach"); closestVel = new RelVelocityAtClosest("Rel Vel At Appr"); distance = new DistanceToTarget("Dist To Target"); relInc = new RelInclination("Rel Inclination"); relVel = new RelVelocity("Rel Velocity"); angToPro = new AngleToPrograde("Ang To Pro"); phaseAngle = new PhaseAngle("Phase Angle"); targetName.IsVisible = BasicSettings.Instance.showTargetName; targetName.AlwaysShow = BasicSettings.Instance.showTargetNameAlways; closest.IsVisible = BasicSettings.Instance.showClosestApproach; closest.AlwaysShow = BasicSettings.Instance.showClosestApproachAlways; closestVel.IsVisible = BasicSettings.Instance.showClosestApproachVelocity; closestVel.AlwaysShow = BasicSettings.Instance.showClosestApproachVelocityAlways; distance.IsVisible = BasicSettings.Instance.showDistance; distance.AlwaysShow = BasicSettings.Instance.showDistanceAlways; relInc.IsVisible = BasicSettings.Instance.showRelInclination; relInc.AlwaysShow = BasicSettings.Instance.showRelInclinationAlways; relVel.IsVisible = BasicSettings.Instance.showRelVelocity; relVel.AlwaysShow = BasicSettings.Instance.showRelVelocityAlways; angToPro.IsVisible = BasicSettings.Instance.showAngleToPrograde; angToPro.AlwaysShow = BasicSettings.Instance.showAngleToProgradeAlways; phaseAngle.IsVisible = BasicSettings.Instance.showPhaseAngle; phaseAngle.AlwaysShow = BasicSettings.Instance.showPhaseAngleAlways; modules.Add(relVel); modules.Add(relInc); modules.Add(angToPro); modules.Add(phaseAngle); modules.Add(closestVel); modules.Add(closest); modules.Add(distance); modules.Add(targetName); return(modules); }
private int DrawTransferAngleButtons(KACAlarm tmpAlarm) { if ((tmpAlarm.TypeOfAlarm == KACAlarm.AlarmTypeEnum.Transfer || tmpAlarm.TypeOfAlarm == KACAlarm.AlarmTypeEnum.TransferModelled) && (HighLogic.LoadedScene == GameScenes.TRACKSTATION || HighLogic.LoadedScene == GameScenes.FLIGHT)) { //right type of alarm, now is the text there Match matchPhase = Regex.Match(tmpAlarm.Notes, "(?<=Phase\\sAngle\\:\\s+)\\S+(?=°)"); Match matchEjectPro = Regex.Match(tmpAlarm.Notes, "(?<=Ejection\\sAngle\\:\\s+)\\S+(?=°\\sto\\sprograde)"); Match matchEjectRetro = Regex.Match(tmpAlarm.Notes, "(?<=Ejection\\sAngle\\:\\s+)\\S+(?=°\\sto\\sretrograde)"); if (matchPhase.Success && (matchEjectPro.Success || matchEjectRetro.Success)) { try { //LogFormatted_DebugOnly("{0}", matchPhase.Value); Double dblPhase = Convert.ToDouble(matchPhase.Value); Double dblEject; if (matchEjectPro.Success) { dblEject = Convert.ToDouble(matchEjectPro.Value); } else { dblEject = Convert.ToDouble(matchEjectRetro.Value); } GUILayout.BeginHorizontal(); CelestialBody cbOrigin = FlightGlobals.Bodies.Single(b => b.bodyName == tmpAlarm.XferOriginBodyName); CelestialBody cbTarget = FlightGlobals.Bodies.Single(b => b.bodyName == tmpAlarm.XferTargetBodyName); GUIStyle styleAngleButton = new GUIStyle(KACResources.styleSmallButton) { fixedWidth = 180 }; if (DrawToggle(ref blnShowPhaseAngle, "Show Phase Angle", styleAngleButton)) { if (blnShowPhaseAngle) { EjectAngle.HideAngle(); blnShowEjectAngle = false; PhaseAngle.DrawAngle(cbOrigin, cbTarget, dblPhase); } else { PhaseAngle.HideAngle(); } } if (DrawToggle(ref blnShowEjectAngle, "Show Eject Angle", styleAngleButton)) { if (blnShowEjectAngle) { PhaseAngle.HideAngle(); blnShowPhaseAngle = false; EjectAngle.DrawAngle(cbOrigin, dblEject, matchEjectRetro.Success); } else { EjectAngle.HideAngle(); } } GUILayout.EndHorizontal(); //if (GUILayout.Toggle()) { //} //GUILayout.Label(String.Format("P:{0} - E:{1}",dblPhase,dblEject)); return(1); } catch (Exception) { GUILayout.Label("Unable to decipher TWP Phase and Eject Angle found in notes"); return(1); } } else { GUILayout.Label("No TWP Phase and Eject Angle found in notes"); return(1); } } else { return(0); } }