private void Awake()
        {
            if (HighLogic.CurrentGame.Mode == Game.Modes.SANDBOX)
            {
                Destroy(gameObject);
            }

            if (instance != null)
            {
                Destroy(gameObject);
            }

            if (!reflected)
            {
                assignReflection();
            }

            if (!spritesLoaded)
            {
                loadSprite();
            }

            instance = this;

            processPrefab();
        }
        private void Start()
        {
            ScienceRelayDialog.onDialogSpawn.Add(onSpawn);
            ScienceRelayDialog.onDialogClose.Add(onClose);
            GameEvents.OnTriggeredDataTransmission.Add(onTriggeredData);
            GameEvents.onGamePause.Add(onPause);
            GameEvents.onGameUnpause.Add(onUnpause);
            GameEvents.OnGameSettingsApplied.Add(onSettingsApplied);

            settings = HighLogic.CurrentGame.Parameters.CustomParams <ScienceRelayParameters>();

            if (settings == null)
            {
                instance = null;
                Destroy(gameObject);
            }

            Assembly assembly = AssemblyLoader.loadedAssemblies.GetByAssembly(Assembly.GetExecutingAssembly()).assembly;
            var      ainfoV   = Attribute.GetCustomAttribute(assembly, typeof(AssemblyInformationalVersionAttribute)) as AssemblyInformationalVersionAttribute;

            switch (ainfoV == null)
            {
            case true: version = ""; break;

            default: version = ainfoV.InformationalVersion; break;
            }
        }
        private void OnDestroy()
        {
            instance = null;

            popupDismiss();

            ScienceRelayDialog.onDialogSpawn.Remove(onSpawn);
            ScienceRelayDialog.onDialogClose.Remove(onClose);
            GameEvents.OnTriggeredDataTransmission.Remove(onTriggeredData);
            GameEvents.onGamePause.Remove(onPause);
            GameEvents.onGameUnpause.Remove(onUnpause);
            GameEvents.OnGameSettingsApplied.Remove(onSettingsApplied);
        }