Exemple #1
0
        [EventMethod] // When client finishes updating assets
        public void OnAssetReady(AssetsReadyPacket packet)
        {
            var players = Server.Players;
            var player  = Server.GetPlayer(packet.UserId);

            if (player != null)
            {
                player.AssetsReady = true;
            }

            var client = Server.TcpHandler.GetClient(packet.ClientId);

            // update chunks for that player
            ChunkProvider.CheckChunks(player);

            // make the player itself appear
            var playerPacket = player.ToPacket();

            client.Send(playerPacket);

            // to track the entity spawning caches etc
            Server.Events.Call(new EntitySpawnEvent()
            {
                Entity   = player,
                Position = player.Position
            });

            // to handle packets when a player joins
            Server.Events.Call(new PlayerJoinEvent()
            {
                Player = player
            });
        }
Exemple #2
0
        [EventMethod] // When client finishes updating assets
        public void OnAssetReady(AssetsReadyPacket packet)
        {
            var player = Server.GetPlayer(packet.UserId);

            if (player != null)
            {
                player.AssetsReady = true;
            }

            var client = ServerTcpHandler.GetClient(packet.ClientId);

            // make the player itself appear
            client.Send(new PlayerPacket()
            {
                Name        = player.Login,
                SpriteIndex = 2,
                UserId      = player.UserId,
                X           = player.X,
                Y           = player.Y,
                Speed       = player.speed
            });

            // update chunks for that player
            ChunkProvider.CheckChunks(player);
        }
Exemple #3
0
        public void OnAssetReady(AssetsReadyPacket assetReady)
        {
            if (State != AssetLoadingState.BEGINING)
            {
                State = AssetLoadingState.BEGINING;
            }
            else
            {
                State = AssetLoadingState.RECIEVING;
                NumberOfAssetsToRecieve = _assetsRequested.Count;

                if (NumberOfAssetsToRecieve > 0)
                {
                    foreach (var packet in _assetsRequested)
                    {
                        packet.HaveIt = false; // asking for the asset
                        UnityClient.TcpClient.Send(packet);
                        Debug.Log("Asking for asset " + packet.ResquestedImageName);
                    }
                    LoadingBehaviour.Loading.StartLoading("Downloading Assets");
                }
                else
                {
                    DoneDownloading();
                }
            }
        }