private void CalculateInternal(NodeCoroutine nodeCoroutine, CalculateContext context) { context.Process(); foreach (var socketIn in InSockets) { if (socketIn.Connected) { socketIn.Connection.Out.Owner.CalculateInternal(nodeCoroutine, new CalculateContext(nodeCoroutine, context, socketIn.Connection.Out.Owner)); } } }
public CalculateContext(NodeCoroutine coroutine, CalculateContext parent, Node node) { _children = new List <CalculateContext>(); _coroutine = coroutine; _parent = parent; _node = node; if (_parent != null) { _parent._children.Add(this); } }
public CalculateContext Calculate(NodeCoroutine nodeCoroutine) { var context = new CalculateContext(nodeCoroutine, null, this); CalculateInternal(nodeCoroutine, context); return context; }