コード例 #1
0
        public GodGameServer CreateServer(VirtualNetworkConnectorServer virtualNetworkConnectorServer)
        {
            var bServer = new ContainerBuilder();

            bServer.RegisterModule <ExternalDependenciesModule>();
            bServer.RegisterModule <SimulationModule>();
            bServer.RegisterModule <PersistenceModule>();
            bServer.RegisterModule <UserInputModule>();
            bServer.RegisterModule(NetworkedModule.CreateServer());
            bServer.Register(ctx => createWorld(ctx.Resolve <LandType>(), ctx.Resolve <ProxyGenerator>())).SingleInstance();

            if (virtualNetworkConnectorServer != null)
            {
                bServer.RegisterInstance(virtualNetworkConnectorServer).As <INetworkConnectorServer>().SingleInstance();
            }


            return(bServer.Build().Resolve <GodGameServer>());
        }
コード例 #2
0
        public GodGameClient CreateClient(VirtualNetworkConnectorClient virtualNetworkConnectorClient)
        {
            var bClient = new ContainerBuilder();

            bClient.RegisterModule <ExternalDependenciesModule>();
            bClient.RegisterModule <SimulationModule>();
            bClient.RegisterModule <RenderingModule>();
            bClient.RegisterModule <UserInputModule>();
            bClient.RegisterModule <PersistenceModule>();
            bClient.RegisterModule(NetworkedModule.CreateClient());
            bClient.Register(ctx => createWorld(ctx.Resolve <LandType>(), ctx.Resolve <ProxyGenerator>())).SingleInstance();


            //TODO: re-enable the hack to allow client console to access the server
            // bClient.RegisterType<AllCommandProvider>().As<ICommandProvider>().WithParameter(TypedParameter.From(server.World));

            if (virtualNetworkConnectorClient != null)
            {
                bClient.RegisterInstance(virtualNetworkConnectorClient).As <INetworkConnectorClient>().SingleInstance();
            }

            return(bClient.Build().Resolve <GodGameClient>());
        }