void OnSignalFired(object signal) { var command = _commandPool.Spawn(_commandPool, (TSignal)signal); if (!_tickableManager.Has(command)) { _tickableManager.Add(command); } command.ExecuteCommand(); }
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); } } }