public void SaveGraph(bool shouldRefreshAssets = true) { ValidateSaveButton(); var newGraphObject = SaveUtility.GetInstance(GraphView).Save(GraphObject.CodeGraphData.AssetPath, shouldRefreshAssets); GraphObject = newGraphObject; }
public CodeGraphObject Save(string fileName, bool shouldRefreshAssets = true) { graphObject = ScriptableObject.CreateInstance <CodeGraphObject>(); graphObject.Initialize(new CodeGraphData { AssetPath = fileName }); var connectedEdges = Edges.Where(x => x.input.node != null).ToList(); graphObject.CodeGraphData.Edges.AddRange(SerializationHelper.SerializeEdges(connectedEdges)); graphObject.CodeGraphData.Nodes.AddRange(SerializationHelper.SerializeNodes(Nodes)); graphObject.CodeGraphData.LastEditedAt = DateTime.Now.ToString(CultureInfo.InvariantCulture); graphObject.CodeGraphData.Groups = new List <GroupData>(CodeGraph.Instance.GraphObject.CodeGraphData.Groups); graphObject.CodeGraphData.Groups.ForEach(group => { group.Title = group.GroupReference.title; }); foreach (var groupItem in CodeGraph.Instance.GraphObject.CodeGraphData.GroupItems) { graphObject.CodeGraphData.GroupItems.Add(groupItem.Key, CodeGraph.Instance.GraphObject.CodeGraphData.GroupItems[groupItem.Key]); } graphObject.CodeGraphData.GraphName = CodeGraph.Instance.GraphObject.CodeGraphData.GraphName; graphObject.CodeGraphData.SchemaVersion = CodeGraph.Instance.GraphObject.CodeGraphData.SchemaVersion; graphObject.CodeGraphData.IsMonoBehaviour = CodeGraph.Instance.GraphObject.CodeGraphData.IsMonoBehaviour; File.WriteAllText(fileName, JsonUtility.ToJson(graphObject.CodeGraphData, true)); if (shouldRefreshAssets) { AssetDatabase.ImportAsset(fileName); } return(graphObject); }
public void LoadGraph(CodeGraphObject graphObject) { this.graphObject = graphObject; ClearGraph(); CreateGroups(); GenerateNodes(); ClearEmptyGroups(); ConnectNodes(); PostInitNodes(); }
public void SetGraph(CodeGraphObject graphObject) { this.GraphObject = graphObject; }