public void OnDestroy()
        {
            GameEvents.onVesselChange.Remove(vesselSwitch);
            GameEvents.onTimeWarpRateChanged.Remove(warpHandler);
            GameEvents.onPartCouple.Remove(docking);

            if (vesselRef != null)
            {
                vesselRef.OnPreAutopilotUpdate  -= preAutoPilotUpdate;
                vesselRef.OnPostAutopilotUpdate -= postAutoPilotUpdate;
            }
            if (!ReferenceEquals(vesselAsst, null))
            {
                vesselAsst.OnDestroy();
            }
            if (!ReferenceEquals(vesselData, null) && !ReferenceEquals(PilotAssistantFlightCore.Instance, null))
            {
                PilotAssistantFlightCore.Instance.removeVessel(this);
            }

            vesselRef      = null;
            vesselSSAS     = null;
            vesselStockSAS = null;
            vesselAsst     = null;
            vesselData     = null;
        }
示例#2
0
        public void OnDestroy()
        {
            if (Vessel != null)
            {
                GameEvents.onVesselChange.Remove(VesselSwitch);
                GameEvents.onTimeWarpRateChanged.Remove(WarpHandler);

                Vessel.OnPreAutopilotUpdate  -= PreAutoPilotUpdate;
                Vessel.OnPostAutopilotUpdate -= PostAutoPilotUpdate;
                if (!ReferenceEquals(vesselAsst, null))
                {
                    vesselAsst.OnDestroy();
                    if (!ReferenceEquals(PilotAssistantFlightCore.Instance, null))
                    {
                        PilotAssistantFlightCore.Instance.RemoveVessel(this);
                    }
                }
                vesselAsst = null;
                vesselData = null;
            }
        }