protected override void OnDraw(Rect bounds)
        {
            var isEva = (FlightGlobals.ActiveVessel?.isEVA).ToTriState();

            if (evaOnly != TriState.UseDefault && evaOnly != isEva)
            {
                return;
            }

            var situation = SituationExtensions.Extend(FlightGlobals.ActiveVessel?.situation, isEva, false);
            var fallback  = SituationExtensions.Extend(FlightGlobals.ActiveVessel?.situation, isEva, true);

            TokenizedText = (situations.ContainsKey(situation)) ? situations[situation] : situations[fallback];
            base.OnDraw(bounds);
        }
Exemple #2
0
        protected override void OnDraw(Rect bounds)
        {
            TriState isEva = (FlightGlobals.ActiveVessel?.isEVA).ToTriState();

            if (evaOnly != TriState.UseDefault && evaOnly != isEva)
            {
                return;
            }

            ExtendedSituation situation = SituationExtensions.Extend(FlightGlobals.ActiveVessel?.situation, isEva, false);
            ExtendedSituation fallback  = SituationExtensions.Extend(FlightGlobals.ActiveVessel?.situation, isEva, true);

            ExtendedSituation    extendedSituation = situationTokenizedTexts.ContainsKey(situation) ? situation : fallback;
            List <List <Token> > texts             = situationTokenizedTexts[extendedSituation];

            // debug
            // Historian.Print($"Random text: {isRandom}, Reset: {resetOnLaunch}, Index: {messageIndices[extendedSituation]}, isEva: {isEva}, situation: {extendedSituation}, #Messages: {texts.Count}");

            if (texts != null && texts.Count < 1)
            {
                return;
            }

            UpdateMessageIndex(extendedSituation);

            try
            {
                TokenizedText = texts[messageIndices[extendedSituation]];
            }
            catch (Exception e)
            {
                TokenizedText = TokenizedError;
                Historian.Print($"TextList error: {e.Message}, situation: {extendedSituation}, index: {messageIndices[extendedSituation]}");
            }
            base.OnDraw(bounds);

            lastVessel = FlightGlobals.ActiveVessel;
            lastDraw   = DateTime.Now;
        }