/// <summary> /// Performs the task of an internalPlugin /// </summary> /// <param name="toTrigger">id of the plugin in the dependency graph</param> /// <param name="triggeredBy">the node which triggered the execution of this node</param> /// <returns>Should the dependencies be triggered</returns> private void InternalPluginAction(int toTrigger, int triggeredBy) { if (!ExecutionHelper.HasFulfilledDependency(dependencyGraph[toTrigger], data, staticData)) { return; } if (dependencyGraph[toTrigger].Type == LoopStart.TypeName) { int[] startIds = loopPairByStart[toTrigger].StartDependencies(triggeredBy, data); StartNodes(startIds, toTrigger); } else if (dependencyGraph[toTrigger].Type == LoopEnd.TypeName) { int[] startIds = loopPairByEnd[toTrigger].End.Finished(data, dependencyGraph); StartNodes(startIds, toTrigger); } else if (dependencyGraph[toTrigger].Type == SyncNode.TypeName) { syncById[toTrigger].StoreData(data, triggeredBy); } }