public ValkyrieGameServer(GameServerSettings settings)
            : this()
        {
            var assemblies = settings[ServerSettingName.EventAssemblies].Split (';')
                .Where ( s => !string.IsNullOrEmpty(s))
                .Select ( s => Assembly.LoadFile(Path.Combine(Environment.CurrentDirectory, s)));

            this.worlds = new ServerWorldManager(assemblies, settings[ServerSettingName.MapDirectory] );
            this.collision = new ServerCollisionProvider(this.worlds);
            this.movement = new ServerNewMovementProvider(this.collision);
            this.movement.PlayerMoved += this.MovementProvider_PlayerMoved;
            this.movement.FailedMovementVerification += this.MovementProvider_FailedVerify;

            this.players = new NetworkPlayerCache();

            this.server = new NetworkServerConnectionProvider();
            this.server.Port = 6116;

            this.settings = settings;

            Dictionary<ushort, Func<MessageBase>> types = new Dictionary<ushort,Func<MessageBase>> ();
            types.Add ((ushort) ClientMessageType.ClientEventMessage, () => new ClientEventRequestMessage ());
            types.Add ((ushort) ServerMessageType.ServerEventMessage, () => new ServerEventMessage ());

            MessageBase.AddMessageTypes (types);
        }
 internal NetworkServerConnection(NetworkServerConnectionProvider provider, uint nid, TcpClient tcp, IPEndPoint endPoint, IValueWriter uwriter)
 {
     this.NetworkId = nid;
     this.Tcp = tcp;
     this.ReliableStream = tcp.GetStream ();
     this.provider = provider;
     this.EndPoint = endPoint;
     this.UnreliableWriter = uwriter;
     this.ReliableReader = new StreamValueReader (ReliableStream);
     this.ReliableWriter = new StreamValueWriter (ReliableStream);
 }