예제 #1
0
        public void StartSimulate(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
        {
            Instance          = this;
            _serviceContainer = serviceContainer;
            _svcContainer     = serviceContainer as ServiceContainer;
            RegisterSystems();
            if (!serviceContainer.GetService <IConstStateService>().IsVideoMode)
            {
                RegisterSystem(new TraceLogSystem());
            }

            InitReference(serviceContainer, mgrContainer);
            foreach (var mgr in _systems)
            {
                mgr.InitReference(serviceContainer, mgrContainer);
            }

            foreach (var mgr in _systems)
            {
                mgr.DoAwake(serviceContainer);
            }

            DoAwake(serviceContainer);
            foreach (var mgr in _systems)
            {
                mgr.DoStart();
            }

            DoStart();
        }
예제 #2
0
 public void AssignReference(IServiceContainer serviceContainer,
                             IManagerContainer mgrContainer
                             )
 {
     InitReference(serviceContainer);
     InitMgrReference(serviceContainer);
 }
예제 #3
0
 public override void InitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
     base.InitReference(serviceContainer, mgrContainer);
     this._networkService   = serviceContainer.GetService <INetworkService>();
     this._simulatorService = serviceContainer.GetService <ISimulatorService>();
     this._uiService        = serviceContainer.GetService <IUIService>();
     this.OnInitReference(serviceContainer, mgrContainer);
 }
 public void AssignReference(Contexts contexts, IServiceContainer serviceContainer,
                             IManagerContainer mgrContainer
                             )
 {
     //_contexts = contexts;
     //_serviceContainer = serviceContainer;
     //InitReference(mgrContainer);
     InitReference(contexts);
     InitReference(serviceContainer);
 }
예제 #5
0
 public override void InitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer = null)
 {
     base.InitReference(serviceContainer, mgrContainer);
     _gameEffectService     = serviceContainer.GetService <IGameEffectService>();
     _gameAudioService      = serviceContainer.GetService <IGameAudioService>();
     _gameStateService      = serviceContainer.GetService <IGameStateService>();
     _gameConfigService     = serviceContainer.GetService <IGameConfigService>();
     _gameCollisionService  = serviceContainer.GetService <IGameCollision2DService>();
     _gameConstStateService = serviceContainer.GetService <IGameConstStateService>();
     _gameUnitService       = serviceContainer.GetService <IGameUnitService>();
 }
예제 #6
0
 protected override void OnInitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
     _gameEffectService      = serviceContainer.GetService <IGameEffectService>();
     _gameAudioService       = serviceContainer.GetService <IGameAudioService>();
     _gameStateService       = serviceContainer.GetService <IGameStateService>();
     _gameConfigService      = serviceContainer.GetService <IGameConfigService>();
     _gameResourceService    = serviceContainer.GetService <IGameResourceService>();
     _gameConstStateService  = serviceContainer.GetService <IGameConstStateService>();
     _gameCollision2DService = serviceContainer.GetService <IGameCollision2DService>();
     _gameUnitService        = serviceContainer.GetService <IGameUnitService>();
 }
예제 #7
0
        public override void InitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
        {
            base.InitReference(serviceContainer, mgrContainer);

            _networkService         = serviceContainer.GetService <INetworkService>();
            SimulatorServiceService = serviceContainer.GetService <ISimulatorService>();
            _uiService = serviceContainer.GetService <IUIService>();

            _gameEffectService   = serviceContainer.GetService <IGameEffectService>();
            _gameAudioService    = serviceContainer.GetService <IGameAudioService>();
            _gameStateService    = serviceContainer.GetService <IGameStateService>();
            _gameConfigService   = serviceContainer.GetService <IGameConfigService>();
            _gameViewService     = serviceContainer.GetService <IGameViewService>();
            _gameResourceService = serviceContainer.GetService <IGameResourceService>();
        }
 public virtual void InitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
     _serviceContainer = serviceContainer;
     //通用Service
     _ecsFacadeService     = serviceContainer.GetService <IECSFacadeService>();
     _randomService        = serviceContainer.GetService <IRandomService>();
     _timeMachineService   = serviceContainer.GetService <ITimeMachineService>();
     _constStateService    = serviceContainer.GetService <IConstStateService>();
     _inputService         = serviceContainer.GetService <IInputService>();
     _viewService          = serviceContainer.GetService <IViewService>();
     _audioService         = serviceContainer.GetService <IAudioService>();
     _map2DService         = serviceContainer.GetService <IMap2DService>();
     _resService           = serviceContainer.GetService <IResService>();
     _effectService        = serviceContainer.GetService <IEffectService>();
     _eventRegisterService = serviceContainer.GetService <IEventRegisterService>();
 }
예제 #9
0
        static void Main(string[] args)
        {
            IServiceCollection collection = new ServiceCollection();

            //register services
            collection.AddScoped <ILog, ConsoleLog>();
            collection.AddTransient <ILogManager, LogManager>();
            collection.AddSingleton <IManagerContainer, ManagerContainer>();

            //get service
            using (ServiceProvider provider = collection.BuildServiceProvider()) {
                ILog log1 = provider.GetService <ILog>();
                ILog log2 = provider.GetService <ILog>();
                Console.WriteLine(log1 == log2);//true

                ILogManager logm1 = provider.GetService <ILogManager>();
                ILogManager logm2 = provider.GetService <ILogManager>();
                Console.WriteLine(logm1 == logm2); // false

                IManagerContainer logmc1 = provider.GetService <IManagerContainer>();
                IManagerContainer logmc2 = provider.GetService <IManagerContainer>();
                Console.WriteLine(logmc1 == logmc2); // true

                //scoped service lifetime related to a IServiceScope
                //CreateScope() will create a new children scope, which is different with the default scope.
                using (var _ChildScope = provider.CreateScope()) {
                    ILog clog1 = _ChildScope.ServiceProvider.GetService <ILog>();
                    ILog clog2 = _ChildScope.ServiceProvider.GetService <ILog>();
                    Console.WriteLine(clog1 == clog2); //true
                    Console.WriteLine(clog1 == log1);  //false
                    Console.WriteLine(clog2 == log2);  //false


                    ILogManager clogm1 = _ChildScope.ServiceProvider.GetService <ILogManager>();
                    ILogManager clogm2 = _ChildScope.ServiceProvider.GetService <ILogManager>();
                    Console.WriteLine(clogm1 == clogm2); // false
                    Console.WriteLine(clogm1 == logm1);  // false
                    Console.WriteLine(clogm2 == logm2);  // false

                    IManagerContainer clogmc1 = _ChildScope.ServiceProvider.GetService <IManagerContainer>();
                    IManagerContainer clogmc2 = _ChildScope.ServiceProvider.GetService <IManagerContainer>();
                    Console.WriteLine(clogmc1 == clogmc2); // true
                    Console.WriteLine(clogmc1 == logmc1);  // true
                    Console.WriteLine(clogmc1 == logmc2);  // true
                }
            }
        }
 public virtual void InitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer = null)
 {
     this._serviceContainer     = serviceContainer;
     this._ecsFactoryService    = serviceContainer.GetService <IECSFactoryService>();
     this._randomService        = serviceContainer.GetService <IRandomService>();
     this._timeMachineService   = serviceContainer.GetService <ITimeMachineService>();
     this._globalStateService   = serviceContainer.GetService <IGlobalStateService>();
     this._inputService         = serviceContainer.GetService <IInputService>();
     this._viewService          = serviceContainer.GetService <IViewService>();
     this._audioService         = serviceContainer.GetService <IAudioService>();
     this._map2DService         = serviceContainer.GetService <IMap2DService>();
     this._resService           = serviceContainer.GetService <IResService>();
     this._effectService        = serviceContainer.GetService <IEffectService>();
     this._eventRegisterService = serviceContainer.GetService <IEventRegisterService>();
     this._idService            = serviceContainer.GetService <IIdService>();
     this._debugService         = serviceContainer.GetService <IDebugService>();
 }
예제 #11
0
 // Token: 0x060000CF RID: 207 RVA: 0x00005700 File Offset: 0x00003900
 protected override void DoSimulateAwake(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
     this.InitReference(serviceContainer, mgrContainer);
     foreach (UpdatableService updatableService in this._systems)
     {
         updatableService.InitReference(serviceContainer, mgrContainer);
     }
     foreach (UpdatableService updatableService2 in this._systems)
     {
         updatableService2.DoAwake(serviceContainer);
     }
     this.DoAwake(serviceContainer);
     foreach (UpdatableService updatableService3 in this._systems)
     {
         updatableService3.DoStart();
     }
     this.DoStart();
 }
 protected override void DoSimulateAwake(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
     InitReference(serviceContainer, mgrContainer);
     DoAwake(serviceContainer);
     DoStart();
 }
예제 #13
0
 public override void InitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
     base.InitReference(serviceContainer, mgrContainer);
     this._serviceContainer = serviceContainer;
     this._mgrContainer     = mgrContainer;
 }
예제 #14
0
 public void SimulationAwake(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
     World.Instance         = this;
     this._serviceContainer = serviceContainer;
     this.DoSimulateAwake(serviceContainer, mgrContainer);
 }
예제 #15
0
 protected virtual void DoSimulateAwake(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
 }
 protected override void OnInitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
     _gameStateService    = serviceContainer.GetService <IGameStateService>();
     _gameConfigService   = serviceContainer.GetService <IGameConfigService>();
     _gameResourceService = serviceContainer.GetService <IGameResourceService>();
 }
예제 #17
0
 protected virtual void OnInitReference(IServiceContainer serviceContainer, IManagerContainer mgrContainer)
 {
 }