internal static void SetCurrentFlightStates() { if (HighLogic.CurrentGame != null) { KACWorkerGameState.CurrentSaveGameName = HighLogic.CurrentGame.Title; } else { KACWorkerGameState.CurrentSaveGameName = ""; } try { KACWorkerGameState.CurrentTime.UT = Planetarium.GetUniversalTime(); } catch (Exception) { } //if (Planetarium.fetch!=null)KACWorkerGameState.CurrentTime.UT = Planetarium.GetUniversalTime(); try { if (KACWorkerGameState.CurrentGUIScene == GameScenes.FLIGHT && FlightGlobals.ActiveVessel != null) { KACWorkerGameState.CurrentVessel = FlightGlobals.ActiveVessel; KACWorkerGameState.CurrentSOIBody = CurrentVessel.mainBody; KACWorkerGameState.CurrentVesselTarget = CurrentVessel.targetObject; } else if (KACWorkerGameState.CurrentGUIScene == GameScenes.TRACKSTATION) { SpaceTracking st = (SpaceTracking)KACSpaceCenter.FindObjectOfType(typeof(SpaceTracking)); PlanetariumCamera c = PlanetariumCamera.fetch; if (c.target != null && c.target.type == MapObject.ObjectType.Vessel) { KACWorkerGameState.CurrentVessel = c.target.vessel; KACWorkerGameState.CurrentSOIBody = CurrentVessel.mainBody; KACWorkerGameState.CurrentVesselTarget = CurrentVessel.targetObject; } else { KACWorkerGameState.CurrentVessel = null; KACWorkerGameState.CurrentSOIBody = null; KACWorkerGameState.CurrentVesselTarget = null; } } //else if (KACWorkerGameState.CurrentGUIScene == GameScenes.TRACKSTATION && // MapView.MapCamera.target.type == MapObject.MapObjectType.VESSEL) //{ // KACWorkerGameState.CurrentVessel = MapView.MapCamera.target.vessel; // KACWorkerGameState.CurrentSOIBody = CurrentVessel.mainBody; // KACWorkerGameState.CurrentVesselTarget = CurrentVessel.targetObject; //} else { KACWorkerGameState.CurrentVessel = null; KACWorkerGameState.CurrentSOIBody = null; KACWorkerGameState.CurrentVesselTarget = null; } } catch (Exception) { } }
private static void SetVesselActiveInTS(Vessel vTarget) { if (KACWorkerGameState.CurrentGUIScene == GameScenes.TRACKSTATION) { try { SpaceTracking st = (SpaceTracking)KACSpaceCenter.FindObjectOfType(typeof(SpaceTracking)); st.SetVessel(vTarget, true); } catch (Exception ex) { LogFormatted("Unable to set vessel as active in Tracking station:\r\n{0}", ex.Message); } } }
private static void SetVesselActiveInTS(Vessel vTarget) { if (KACWorkerGameState.CurrentGUIScene == GameScenes.TRACKSTATION) { try { SpaceTracking st = (SpaceTracking)KACSpaceCenter.FindObjectOfType(typeof(SpaceTracking)); //st.GetType().GetMethods(BindingFlags.NonPublic | BindingFlags.Instance).ToList().ForEach( // mi=>LogFormatted("Method-{0}-{1}",mi.Name,mi.IsPrivate)); MethodInfo setvesselMethod = st.GetType().GetMethod("SetVessel", BindingFlags.NonPublic | BindingFlags.Instance); setvesselMethod.Invoke(st, new object[] { vTarget, true }); } catch (Exception ex) { LogFormatted("Unable to set vessel as active in Tracking station:\r\n{0}", ex.Message); } } }