private Task HandleUpdate(DatagramSocket socket, NetworkPacket packet) { if (packet != null) { switch (packet.Type) { case PacketType.Entity: _updateQueue.Add(packet as EntityPacket); break; case PacketType.GameServerDataUpdate: GameServerDataUpdate update = packet as GameServerDataUpdate; _playerList = update.PlayerList; _gameData = update.GameData; break; case PacketType.ShipCommand: _gameInstance.GameModel.InputManager.ProcessRemoteInput(packet as ShipCommand); break; case PacketType.DeadEntities: DeadEntitiesPacket newlyDead = packet as DeadEntitiesPacket; _updateQueue._deadEntities.AddRange(newlyDead.EntityList); break; } } return(Task.Delay(0)); }
private void ProcessIncomingPacket(object sender, PacketReceivedEventArgs e) { NetworkPacket packet = e.Packet; if (packet.Type == PacketType.Entity) { EntityPacket entityPacket = packet as EntityPacket; _updateQueue.Add(entityPacket); } }