using System.Collections.Generic; using IwbZero.Expr; using WeEngine.Enum; namespace WeEngine.Functions { /// /// 等待节点 /// public class FunWaitNode : RunTimeBase, IFunction { public string Invoke(ExprObject exprObj) { ExprObject child = exprObj.GetChild(0), child2 = exprObj.GetChild(2), child3 = exprObj.GetChild(4); GetPackage(child.Expr); if (child3==null) { return "FALSE"; } var waitNode = Rp.GetNodeByPath(child3.Expr); if (waitNode == null) { return "FALSE"; } if (waitNode.NodeState == NodeState.RunEnd || waitNode.NodeState == NodeState.Complete) { var child4 = exprObj.GetChild(6); return child4 != null ? ExprModule.Evaluate(child4.Expr) : "TRUE"; } var node = Rp.GetNodeByPath(child2.Expr); if (Rp.WaitForRunNode.ContainsKey(waitNode.Id)) { Rp.WaitForRunNode[waitNode.Id].Add(node.Id); } else { Rp.WaitForRunNode[waitNode.Id] = new List() {node.Id}; } return "FALSE"; } } }