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)
            {
            }
        }
示例#2
0
 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);
         }
     }
 }
示例#3
0
        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);
                }
            }
        }