Exemplo n.º 1
0
        private void SyncPlaybackStateToEditor()
        {
            Grpc.Editor.PlaybackState state = Grpc.Editor.PlaybackState.Loading;
            switch (State)
            {
            case LoadedGameState.Loading:
                state = Grpc.Editor.PlaybackState.Loading;
                break;

            case LoadedGameState.Loaded:
                state = Grpc.Editor.PlaybackState.Loaded;
                break;

            case LoadedGameState.Playing:
                state = Grpc.Editor.PlaybackState.Playing;
                break;

            case LoadedGameState.Paused:
                state = Grpc.Editor.PlaybackState.Paused;
                break;
            }

            Grpc.Editor.Timestamp timestamp = null;
            if (_playingStartTime != null)
            {
                timestamp = new Grpc.Editor.Timestamp
                {
                    UnixTimestamp = (UInt64)(_playingStartTime.Value.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))).TotalSeconds
                };
            }

            _gameHosterClient.PlaybackStateChanged(new Grpc.Editor.PlaybackStateChangedRequest
            {
                State     = state,
                StartTime = timestamp
            });
        }