internal void OnDestroy()
 {
     Util.DebugLog("");
     AttachedVessel = null;
     AppLauncherButton.DestroyToolbarButton();
     MainGUI.DeSpawn();
     NavBallOverlay.DestroyTransforms();
     FlightOverlay.Destroy();
     MapOverlay.DestroyRenderer();
     Trajectory.Destroy();
     DescentProfile.Clear();
 }
 internal void OnApplicationQuit()
 {
     Util.Log("Ending after {0} seconds", Time.time);
     AttachedVessel = null;
     AppLauncherButton.Destroy();
     MainGUI.Destroy();
     NavBallOverlay.Destroy();
     FlightOverlay.Destroy();
     MapOverlay.Destroy();
     Trajectory.Destroy();
     DescentProfile.Destroy();
     if (Settings != null)
     {
         Settings.Destroy();
     }
     Settings = null;
 }
Exemple #3
0
        internal void Update()
        {
            if (Util.IsPaused || Settings == null || !Util.IsFlight)
            {
                return;
            }

            foreach (var vessel in FlightGlobals.VesselsLoaded)
            {
                if (vessel.FindPartModuleImplementing <ModuleCommand>() != null &&
                    (Settings.MultiTrajectories || vessel == FlightGlobals.ActiveVessel) &&
                    LoadedVesselsTrajectories.All(t => t.AttachedVessel != vessel))
                {
                    AttachVessel(vessel);
                }
            }

            for (var i = LoadedVesselsTrajectories.Count - 1; i >= 0; i--)
            {
                Trajectory trajectory = LoadedVesselsTrajectories[i];
                if (trajectory.AttachedVessel.FindPartModuleImplementing <ModuleCommand>() == null ||
                    (!Settings.MultiTrajectories && trajectory.AttachedVessel != FlightGlobals.ActiveVessel) ||
                    FlightGlobals.VesselsLoaded.All(v => v != trajectory.AttachedVessel))
                {
                    trajectory.Destroy();
                    LoadedVesselsTrajectories.RemoveAt(i);
                }
            }

            foreach (var trajectory in LoadedVesselsTrajectories)
            {
                trajectory.Update();
            }

            MainGUI.Update();
        }