Пример #1
0
        /// <summary>
        /// Closes registration for new systems, initialize all registered.
        /// </summary>
        public void Initialize()
        {
#if DEBUG
            if (_inited)
            {
                throw new Exception("EcsSystems instance already initialized");
            }
            for (var i = 0; i < _runSystemsCount; i++)
            {
                DisabledInDebugSystems.Add(false);
            }
            _inited = true;
#endif
#if !LEOECS_DISABLE_INJECT
            for (var i = 0; i < _injectSystemsCount; i++)
            {
                EcsInjections.Inject(_injectSystems[i], _world, _injections);
            }
#endif
            for (var i = 0; i < _preInitSystemsCount; i++)
            {
                _preInitSystems[i].PreInitialize();
                _world.ProcessDelayedUpdates();
            }

            for (var i = 0; i < _initSystemsCount; i++)
            {
                _initSystems[i].Initialize();
                _world.ProcessDelayedUpdates();
            }
        }
Пример #2
0
        /// <summary>
        /// Creates entity with single component at specified EcsWorld.
        /// </summary>
        /// <param name="world">World instance.</param>
        public static Inc1 Create(EcsWorld world)
        {
            world.GetFilter <EcsFilterSingle <Inc1> > ();
            var data = world.CreateEntityWith <Inc1> ();

            world.ProcessDelayedUpdates();
            return(data);
        }
Пример #3
0
        /// <summary>
        /// Closes registration for new systems, initialize all registered.
        /// </summary>
        public void Initialize()
        {
#if DEBUG
            if (_inited)
            {
                throw new Exception("EcsSystems instance already initialized.");
            }
            for (var i = 0; i < _runSystemsCount; i++)
            {
                DisabledInDebugSystems.Add(false);
            }
            _inited = true;
#endif
            for (var i = 0; i < _initSystemsCount; i++)
            {
                _initSystems[i].Initialize();
                _world.ProcessDelayedUpdates();
            }
        }
Пример #4
0
        /// <summary>
        /// Closes registration for new systems, initialize all registered.
        /// </summary>
        public void Initialize()
        {
#if DEBUG
            Internals.EcsHelpers.Assert(!_inited, "EcsSystems instance already initialized");
            for (var i = 0; i < _runSystemsCount; i++)
            {
                DisabledInDebugSystems.Add(false);
            }
            _inited = true;
#endif
            for (var i = 0; i < _preInitSystemsCount; i++)
            {
                _preInitSystems[i].PreInitialize();
                _world.ProcessDelayedUpdates();
            }
            for (var i = 0; i < _initSystemsCount; i++)
            {
                _initSystems[i].Initialize();
                _world.ProcessDelayedUpdates();
            }
        }
Пример #5
0
        /// <summary>
        /// Closes registration for new systems, initialize all registered.
        /// </summary>
        public void Initialize()
        {
#if DEBUG
            if (_inited)
            {
                throw new Exception("EcsSystems instance already initialized");
            }
            for (var i = 0; i < _runSystemsCount; i++)
            {
                DisabledInDebugSystems.Add(false);
            }
            _inited = true;
#endif
#if !LEOECS_DISABLE_INJECT
            for (var i = 0; i < _injectSystemsCount; i++)
            {
                // injection for nested EcsSystems.
                var nestedSystems = _injectSystems[i] as EcsSystems;
                if (nestedSystems != null)
                {
                    foreach (var pair in _injections)
                    {
                        nestedSystems._injections[pair.Key] = pair.Value;
                    }
                }
                EcsInjections.Inject(_injectSystems[i], _world, _injections);
            }
#endif
            for (int i = 0, iMax = _preInitSystemsCount; i < iMax; i++)
            {
                _preInitSystems[i].PreInitialize();
                _world.ProcessDelayedUpdates();
            }

            for (int i = 0, iMax = _initSystemsCount; i < iMax; i++)
            {
                _initSystems[i].Initialize();
                _world.ProcessDelayedUpdates();
            }
        }