/// <summary> /// Create a "Trigger" with a Setter that has a reference kept in the list TriggerFields. /// /// By storing these set methods' reference in the list, we can easily set the value whenever we want, /// and pass setter methods around like any other variable. /// </summary> /// <returns>NodePortTriggerField</returns> public static NodePortTriggerField Create(MethodInfo field, ITriggeredNode node) { var newTriggerField = new NodePortTriggerField(field, node); TriggerFields.Add(newTriggerField); return(newTriggerField); }
public override void OnCreateConnection(NodePort from, NodePort to) { if (to.nodeType.GetInterfaces().Contains(typeof(ITriggeredNode))) { var field = typeof(ITriggeredNode).GetProperty("Trigger").GetSetMethod(); NodePortTriggerField.Create(field, to.node as ITriggeredNode); // Make sure trigger is part of the delegate MidiMaster.noteOnDelegate -= TriggerConnectedNodes; MidiMaster.noteOnDelegate += TriggerConnectedNodes; } }