Esempio n. 1
0
 public void RunBeforeEveryTest()
 {
     this.TimeProvider = new DummyTimeProvider();
     this.TestSystem   = new ECSSystem();
     this.TestEntity   = new GameObject();
     this.TestEntity2  = new GameObject();
 }
Esempio n. 2
0
 private void DoRegister(ECSSystem system)
 {
     this.engineService.RequireInitState();
     this.RegisterNodesDeclaredInSystem(system.GetType());
     this.CollectHandlersAndNodes(system);
     this.InitSystem(system);
     this.registeredSystemTypes.Add(system.GetType());
 }
Esempio n. 3
0
 private void CollectHandlersAndNodes(ECSSystem systemInstance)
 {
     foreach (Handler handler in this.engineService.HandlerCollector.CollectHandlers(systemInstance))
     {
         IList <HandlerArgument> handlerArguments = handler.HandlerArgumentsDescription.HandlerArguments;
         foreach (HandlerArgument argument in handlerArguments)
         {
             NodeDescriptionRegistry.AddNodeDescription(argument.NodeDescription);
         }
     }
 }
Esempio n. 4
0
        public Handler CreateHandler(MethodInfo method, ECSSystem system)
        {
            if (!this.IsSelf(method))
            {
                return(null);
            }
            this.ValidateMethodIsPublic(method);
            this.ValidateEventTypes(method);
            HandlerArgumentsDescription argumentsDescription = new HandlerArgumentsParser(method).Parse();

            this.Validate(method, argumentsDescription);
            return(this.CreateHandlerInstance(method, this.GetMethodHandle(method, system), argumentsDescription));
        }
Esempio n. 5
0
        private bool AddHandlerIfNeed(MethodInfo declaredMethod, ECSSystem system, ICollection <Handler> systemHandler)
        {
            bool flag;

            using (IEnumerator <HandlerFactory> enumerator = this.factories.GetEnumerator())
            {
                while (true)
                {
                    if (enumerator.MoveNext())
                    {
                        Handler handler = enumerator.Current.CreateHandler(declaredMethod, system);
                        if (handler == null)
                        {
                            continue;
                        }
                        if (this.HandlerMustBeIgnored(handler))
                        {
                            flag = true;
                        }
                        else
                        {
                            if (!declaredMethod.IsPublic)
                            {
                                throw new PrivateHandlerFoundException(declaredMethod);
                            }
                            foreach (EngineHandlerRegistrationListener listener in this.handlerListeners)
                            {
                                listener.OnHandlerAdded(handler);
                            }
                            this.Register(handler);
                            systemHandler.Add(handler);
                            flag = true;
                        }
                    }
                    else
                    {
                        return(false);
                    }
                    break;
                }
            }
            return(flag);
        }
Esempio n. 6
0
 private void Start()
 {
     ECSSystem.StartAll();
 }
Esempio n. 7
0
 private void Update()
 {
     ECSSystem.UpdateAll();
 }
Esempio n. 8
0
 private void Awake()
 {
     ECSSystem.AddSystem(new PecsManSystem(PecsMan, nbPecsMan));
     ECSSystem.AddSystem(new FoodSystem(Food, nbFoods));
     ECSSystem.AddSystem(new EnemySystem(Enemy, nbEnemy));
 }
Esempio n. 9
0
 public void ForceRegisterSystem(ECSSystem system)
 {
     this.systemRegistry.ForceRegisterSystem(system);
 }
Esempio n. 10
0
 public void RegisterSystem(ECSSystem system)
 {
     this.systemRegistry.RegisterSystem(system);
 }
Esempio n. 11
0
 public MethodHandle GetMethodHandle(MethodInfo method, ECSSystem system) =>
 new MethodHandle(method, system);
Esempio n. 12
0
 public MethodHandle(MethodInfo method, ECSSystem system)
 {
     this.method = method;
     this.system = system;
     this.throwInnerException = TestContext.IsTestMode;
 }
Esempio n. 13
0
 public void RegisterSystem(ECSSystem system)
 {
     this.CheckDoubleRegistration(system.GetType());
     this.DoRegister(system);
 }
Esempio n. 14
0
 private void InitSystem(ECSSystem systemInstance)
 {
     systemInstance.Init(this.templateRegistry, this.engineService.DelayedEventManager, this.engineService, this.nodeRegistrator);
 }
Esempio n. 15
0
 public void ForceRegisterSystem(ECSSystem system)
 {
     this.DoRegister(system);
 }