コード例 #1
0
        private IEnumerator WaitForProvider()
        {
            string FormatTime(int timerSeconds)
            {
                if (shuttle.Status == EscapeShuttleStatus.DockedCentcom ||
                    shuttle.Status == EscapeShuttleStatus.DockedStation)
                {
                    return(string.Empty);
                }

                return("ETA: " + TimeSpan.FromSeconds(timerSeconds).ToString("mm\\:ss"));
            }

            while (Provider == null)
            {
                yield return(WaitFor.EndOfFrame);
            }

            console = Provider.GetComponentInChildren <CommsConsole>();

            //starting up, setting appropriate labels
            ProcessIdChange(console.IdCard);
            console.OnServerIDCardChanged.AddListener(ProcessIdChange);
            shuttle = GameManager.Instance.PrimaryEscapeShuttle;

            shuttleStatusLabel.SetValueServer(shuttle.Status.ToString());
            statusImage.SetSprite((int)shuttle.Status);
            shuttle.OnShuttleUpdate.AddListener(status =>
            {
                statusImage.SetSprite((int)shuttle.Status);
                shuttleStatusLabel.SetValueServer(status.ToString());
            });

            shuttleTimerLabel.SetValueServer(FormatTime(shuttle.CurrentTimerSeconds));
            shuttle.OnTimerUpdate.AddListener(timerSeconds =>
            {
                shuttleTimerLabel.SetValueServer(FormatTime(timerSeconds));
            });

            RefreshCallButtonText();

            Logger.Log(nameof(WaitForProvider), Category.Shuttles);
        }