public void Save(NodeTreeEditorData data, string saveName)
        {
            Debug.Log($"{data.Nodes.Count}");
            var connections = data.Connections.Select(x => _mediaType.ConvertFrom <ConnectionData>(x)).ToList();

            data.Nodes
            .ForEach(oNode => oNode.NodeData.NextIds = data.Nodes
                                                       .Where(xNode => connections.Any(connection => connection.OutNodeID == oNode.NodeData.Id && connection.InNodeID == xNode.NodeData.Id))
                                                       .OrderBy(x => x.X)
                                                       .Select(x => x.NodeData.Id)
                                                       .ToList());
            _storage.Put(saveName, new NodeTreeData
            {
                StartIds = connections.Where(x => x.OutNodeID == _mediaType.ConvertFrom <StartNodeData>(data.StartNode).ID).Select(x => x.InNodeID).ToArray(),
                Nodes    = data.Nodes.Select(x => x.NodeData).ToArray()
            });
        }
Beispiel #2
0
 private void Execute(NodeTreeChanged msg)
 {
     if (CurrentNodeTree.IsActive)
     {
         _messagesToWaitFor        = new List <Type>();
         CurrentNodeTree.ShouldEnd = false;
         _nodeTree = _mediaType.ConvertFrom <NodeTreeData>(CurrentNodeTree.NodeTree.text);
         EnsureNodeTreeObjectsCreated();
         CurrentNodeTree.NextNodeIds = _nodeTree.StartIds;
         Next();
     }
 }
Beispiel #3
0
        private void Load()
        {
            var path = EditorUtility.OpenFilePanel("Load Dialogue File", Application.dataPath + "/Dialogues", "vn");

            if (path.Length != 0)
            {
                var nodeEditor = _mediaType.ConvertFrom <NodeTreeEditorData>(File.ReadAllText(path));
                _menuBar.NodeTreeName = nodeEditor.Name;
                _startNode            = new StartNode(_mediaType, nodeEditor.StartNode, OnClickConnectionPoint);
                _nodes       = nodeEditor.Nodes.Select(CreateNode).ToList();
                _connections = nodeEditor.Connections
                               .Select(x => new Connection(_mediaType, x, _nodes, _startNode, OnClickRemoveConnection)).ToList();
                _zoom = nodeEditor.Zoom > 0 ? nodeEditor.Zoom : 1;
            }
        }
 public StartNode(IMediaType mediaType, string media, Action <ConnectionPoint> onClickConnection)
     : this(mediaType.ConvertFrom <StartNodeData>(media), onClickConnection)
 {
 }
 public Connection(IMediaType mediaType, string media, List <Node> nodes, StartNode startNode, Action <Connection> onClick)
     : this(mediaType.ConvertFrom <ConnectionData>(media), nodes, startNode, onClick)
 {
 }