Пример #1
0
        private LeoSystemData CreateSystemInfo(Type systemType)
        {
            var defaultSystemInfo = new LeoSystemData()
            {
                updateType = PlayerLoopTiming.Update,
            };

            return(defaultSystemInfo);
        }
Пример #2
0
        private void ActivateSystem(Type systemType, LeoSystemData data, IEcsSystem ecsSystem)
        {
            var systemInfo = GetSystemInfo(systemType);

            if (!systemInfo.IsActive)
            {
                systemInfo.data = data;

                var system  = ecsSystem ?? _factory.Create(systemType);
                var systems = system is IEcsRunSystem ?
                              new EcsSystems(_world).Add(system, systemType.Name):
                              new EcsSystems(_world).Add(system);

                systemInfo.systems   = systems;
                systemInfo.ecsSystem = system;
                systems.Init();

                _updateQueues[data.updateType].Add(systems);
            }

            systemInfo.counter++;
        }
Пример #3
0
        public void ActivateSystem(IEcsSystem system, LeoSystemData systemData)
        {
            var systemType = system.GetType();

            ActivateSystem(systemType, systemData, system);
        }
        public static void ActivateSystem(this EcsWorld world, IEcsSystem system, LeoSystemData systemInfo)
        {
            var ecsWorld = GetWorld(world);

            ecsWorld.ActivateSystem(system);
        }