Example #1
0
        private async void CreateNetworkWorld()
        {
            _worldMaker = new NetworkWorldMaker(_networkManager);

            var world = await _worldMaker
                        .Create(this);

            var gameScreen = new GameScreen(world, _networkManager);

            var player = gameScreen.AddPlayer(new Entity(SteamClient.SteamId), true);

            var newPlayerPacket = new NewPlayerPacket
            {
                SteamId = player.EntityId,
                HeadId  = 1,
                X       = (int)player.X,
                Y       = (int)player.Y
            };

            var package = _networkManager.MessagePackager.Package(newPlayerPacket);

            _networkManager.SendMessage(package);

            foreach (var netPlayer in ((NetworkWorldMaker)_worldMaker).PlayersToAdd)
            {
                gameScreen.AddPlayer(new Entity(netPlayer.SteamId)
                {
                    X = netPlayer.X,
                    Y = netPlayer.Y
                });
            }

            ScreenManager.AddScreen(gameScreen);
            ScreenManager.ChangeScreen(gameScreen.Name);
        }
        private async void SendMap(Connection connection)
        {
            for (var i = 0; i < _gameWorld.Width; i++)
            {
                for (var j = 0; j < _gameWorld.Height; j++)
                {
                    // TODO NETWORK GAME AREAS
                    var tileToSend     = _gameWorld.GameAreas[0].Tiles[i, j];
                    var tileTypePacket = new TileTypePacket()
                    {
                        X        = tileToSend.TileX,
                        Y        = tileToSend.TileY,
                        TileType = tileToSend.TileType
                    };
                    var packet = _messagePackager.Package(tileTypePacket);
                    _networkManager.SendMessage(packet, connection);
                }

                await Task.Delay(1);
            }

            foreach (var player in _entitySet.GetAll())
            {
                var playerPacket = new NewPlayerPacket()
                {
                    SteamId = player.EntityId,
                    X       = (int)player.X,
                    Y       = (int)player.Y,
                    HeadId  = 1
                };

                var package = _messagePackager.Package(playerPacket);

                _networkManager.SendMessage(package, connection);

                await Task.Delay(1);
            }

            var mapSendCompletePacket  = new MapSendCompletePacket();
            var mapSendCompletePackage = _messagePackager.Package(mapSendCompletePacket);

            _networkManager.SendMessage(mapSendCompletePackage, connection);
        }