Beispiel #1
0
        /// <summary>
        /// Callback method for when another player enters our scene.
        /// </summary>
        /// <param name="enterSceneData">The ClientPlayerEnterScene packet data.</param>
        private void OnPlayerEnterScene(ClientPlayerEnterScene enterSceneData)
        {
            // Read ID from player data
            var id = enterSceneData.Id;

            Logger.Get().Info(this, $"Player {id} entered scene");

            if (!_playerData.TryGetValue(id, out var playerData))
            {
                playerData      = new ClientPlayerData(id, enterSceneData.Username);
                _playerData[id] = playerData;
            }

            playerData.IsInLocalScene = true;

            _playerManager.SpawnPlayer(
                playerData,
                enterSceneData.Username,
                enterSceneData.Position,
                enterSceneData.Scale,
                enterSceneData.Team,
                enterSceneData.SkinId
                );
            _animationManager.UpdatePlayerAnimation(id, enterSceneData.AnimationClipId, 0);

            try {
                PlayerEnterSceneEvent?.Invoke(playerData);
            } catch (Exception e) {
                Logger.Get().Warn(this,
                                  $"Exception thrown while invoking PlayerEnterScene event, {e.GetType()}, {e.Message}, {e.StackTrace}");
            }
        }
Beispiel #2
0
        private void OnPlayerEnterScene(ClientPlayerEnterScene playerData)
        {
            // Read ID from player data
            var id = playerData.Id;

            Logger.Info(this, $"Player {id} entered scene, spawning player");

            _playerManager.SpawnPlayer(id, playerData.Username, playerData.Position, playerData.Scale, playerData.Team, playerData.Skin);
            _animationManager.UpdatePlayerAnimation(id, playerData.AnimationClipId, 0);
        }