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); }