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);
        }
        public void LoadEngineContext(IEngineContext context)
        {
            // This is optional, use the constructor to load

            if(context != null)
                this.collisionprovider = context.CollisionProvider;

            this.isloaded = true;
        }
Ejemplo n.º 3
0
        public void Load(ISceneProvider draw, IEventProvider events, INetworkProvider network, ISoundProvider sound, IModuleProvider modules, IMovementProvider movement, ICollisionProvider collision, IVoiceChatProvider voicechat, IWorldManager world, ITextureManager texture, ISoundManager soundmanager)
        {
            this.drawprovider = draw;
            this.eventprovider = events;
            this.networkprovider = network;
            this.soundprovider = sound;
            this.moduleprovider = modules;
            this.movementprovider = movement;
            this.collisionprovider = collision;
            this.voicechatprovider = voicechat;
            this.texturemanager = texture;
            this.worldmanager = world;
            this.soundmanager = soundmanager;

            this.LoadContexts (drawprovider, eventprovider, networkprovider, soundprovider, moduleprovider, movementprovider,
                          collisionprovider, voicechatprovider, texturemanager, worldmanager, soundmanager);
        }
 public ServerMovementProvider(ICollisionProvider collisionprovider)
 {
     this.collisionprovider = collisionprovider;
 }
 public NetworkMovementProvider(ICollisionProvider collisionprovider)
 {
     this.collisionprovider = collisionprovider;
 }