예제 #1
0
        /// <summary>
        ///     Start a headless instance of the client and return an object that can be used to control it.
        /// </summary>
        protected virtual ClientIntegrationInstance StartClient(ClientIntegrationOptions?options = null)
        {
            var instance = new ClientIntegrationInstance(options);

            _integrationInstances.Add(instance);
            return(instance);
        }
예제 #2
0
        public GridPainter(ClientIntegrationInstance client, ServerIntegrationInstance server)
        {
            _entityPainter = new EntityPainter(client, server);

            _cEntityManager = client.ResolveDependency <IEntityManager>();
            _cMapManager    = client.ResolveDependency <IMapManager>();

            _sEntityManager = server.ResolveDependency <IEntityManager>();

            _entities = GetEntities();
        }
예제 #3
0
        private static async Task ConnectNetworking(ClientIntegrationInstance client, ServerIntegrationInstance server)
        {
            await Task.WhenAll(client.WaitIdleAsync(), server.WaitIdleAsync());

            // Connect.

            client.SetConnectTarget(server);

            client.Post(() => IoCManager.Resolve <IClientNetManager>().ClientConnect(null, 0, null));

            // Run some ticks for the handshake to complete and such.

            for (var i = 0; i < 10; i++)
            {
                server.RunTicks(1);
                await server.WaitIdleAsync();

                client.RunTicks(1);
                await client.WaitIdleAsync();
            }

            await Task.WhenAll(client.WaitIdleAsync(), server.WaitIdleAsync());
        }
예제 #4
0
 public TilePainter(ClientIntegrationInstance client, ServerIntegrationInstance server)
 {
     _sTileDefinitionManager = server.ResolveDependency <ITileDefinitionManager>();
     _cResourceCache         = client.ResolveDependency <IResourceCache>();
 }