public List <INodeItem> PickUpInOutItem(INodeParent item) { this.pickedUpItem = item; List <INodeItem> olditems = new List <INodeItem>(); if (connectedNodes.ContainsKey(item)) { List <INodeItem> needClear = new List <INodeItem>(); for (int i = 0; i < connectedNodes[item].Count; i++) { INodeItem nodeItem = connectedNodes[item][i]; needClear.Add(nodeItem); INodeItem target = nodeItem.ConnectedNode; connectedNodes[target.Body].Remove(target); Debug.Log(connectedNodes[item][i].Detach()); olditems.Add(nodeItem); olditems.Add(target); } for (int i = 0; i < needClear.Count; i++) { connectedNodes[item].Remove(needClear[i]); } } return(olditems); }
// This is just breadth-wise since I'm more familiar with that. public string ListChildren(int level) { StringBuilder sb = new StringBuilder(); foreach (INodeChild item in Children) { sb.AppendLine(Enumerable.Repeat(" ", level)); INodeParent itemParent = item as INodeParent; if (itemParent != null) { itemParent.ListChildren(++level); } } return(sb.ToString()); }
public void PutDownInOutItem(bool connected) { if (connected) { if (!connectedNodes.ContainsKey(pickedUpItem)) { connectedNodes[pickedUpItem] = new List <INodeItem>(); } connectedNodes[pickedUpItem].Add(activeNode); if (!connectedNodes.ContainsKey(TargetNode.Body)) { connectedNodes[TargetNode.Body] = new List <INodeItem>(); } connectedNodes[TargetNode.Body].Add(targetNode); } pickedUpItem = null; targetNode = null; activeNode = null; }
public void ResetBodyTransform(INodeParent otherParent, Vector3 rPos, Vector3 rDir) { transform.position = otherParent.Trans.TransformPoint(rPos); transform.forward = otherParent.Trans.TransformDirection(rDir); }
public ParameterList(INodeParent parent, ParameterList source) { this.parent = parent; items.AddRange(source.items); }
public ParameterList(INodeParent parent) { this.parent = parent; }