void OnSignalFired(object signal)
        {
            var command = _commandPool.Spawn(_commandPool, (TSignal)signal);

            if (!_tickableManager.Has(command))
            {
                _tickableManager.Add(command);
            }
            command.ExecuteCommand();
        }
Example #2
0
        public SignalDeclarationAsyncInitializer(
            [Inject(Source = InjectSources.Local)]
            List <SignalDeclaration> signalDeclarations,
            [Inject(Optional = true, Source = InjectSources.Local)]
            TickableManager tickManager)
        {
            for (int i = 0; i < signalDeclarations.Count; i++)
            {
                var declaration = signalDeclarations[i];

                if (declaration.IsAsync)
                {
                    Assert.IsNotNull(tickManager, "TickableManager is required when using asynchronous signals");
                    tickManager.Add(declaration, declaration.TickPriority);
                }
            }
        }