private void AddNode(Type type, Vector2 position) { if (type.IsSubclassOf(typeof(Leaf))) { EditorAILeafNode node = Node.Create(EditorAILeafNode.ID, position) as EditorAILeafNode; node.Init(type); } else if (type.IsSubclassOf(typeof(Decorator))) { EditorAIDecoratorNode node = Node.Create(EditorAIDecoratorNode.ID, position) as EditorAIDecoratorNode; node.Init(type); } else if (type.IsSubclassOf(typeof(Combinational))) { EditorAICombinationalNode node = Node.Create(EditorAICombinationalNode.ID, position) as EditorAICombinationalNode; node.Init(type); } }
public EditorAINode LoadDecorator(Decorator node) { EditorAIDecoratorNode output = Node.Create(EditorAIDecoratorNode.ID, Vector3.zero) as EditorAIDecoratorNode; output.dataType = node.GetType().ToString(); var clone = node.Clone() as Decorator; clone.subNode = null; output.data = new GenericSerializable(output.dataType); output.data.SetObject(clone, nodeTypes); //load child EditorAINode child = LoadNode(node.subNode); //attach children child.Parent.ApplyConnection(output.child); return(output); }