public void SaveDialogueNodes(DialogueContainer dialogueContainer) { foreach (var dialogueNode in DialogueNodes.Where(node => !node.EntryPoint)) { dialogueContainer.DialogueNodeData.Add(new DialogueNodeData { Guid = dialogueNode.GUID, DialogueText = dialogueNode.DialogueText, TargetPlayer = dialogueNode.TargetPlayer, Position = dialogueNode.GetPosition().position }); } return; }
public void SaveGraph(string filename) { var dialogueContainer = ScriptableObject.CreateInstance <DialogueContainer>(); SaveNodeLinks(dialogueContainer); SaveDialogueNodes(dialogueContainer); SaveAnimationTriggerNodes(dialogueContainer); SaveGetFlagNodes(dialogueContainer); SaveSetFlagNodes(dialogueContainer); SaveBooleanGetFlagNodes(dialogueContainer); SaveBooleanSetFlagNodes(dialogueContainer); SaveMoveToPosNodes(dialogueContainer); //SaveExposedProperties(dialogueContainer); var initialNode = DialogueNodes.First(node => node.EntryPoint); dialogueContainer.StartingGUID = initialNode.GUID; //dialogueContainer.NodeLinks.First(link => link.BaseNodeGuid == initialNode.GUID).TargetNodeGuid; AssetDatabase.CreateAsset(dialogueContainer, $"Assets/DialogueEditor/Resources/{filename}.asset"); AssetDatabase.SaveAssets(); }
private void ClearGraph() { DialogueNodes.Find(x => x.EntryPoint).GUID = _containerCache.StartingGUID; foreach (var node in DialogueNodes) { if (node.EntryPoint) { continue; } Edges.Where(x => x.input.node == node).ToList().ForEach(edge => _targetGraphView.RemoveElement(edge)); _targetGraphView.RemoveElement(node); } foreach (var node in AnimationTriggerNodes) { if (node.EntryPoint) { continue; } Edges.Where(x => x.input.node == node).ToList().ForEach(edge => _targetGraphView.RemoveElement(edge)); _targetGraphView.RemoveElement(node); } foreach (var node in GetFlagNodes) { if (node.EntryPoint) { continue; } Edges.Where(x => x.input.node == node).ToList().ForEach(edge => _targetGraphView.RemoveElement(edge)); _targetGraphView.RemoveElement(node); } foreach (var node in SetFlagNodes) { if (node.EntryPoint) { continue; } Edges.Where(x => x.input.node == node).ToList().ForEach(edge => _targetGraphView.RemoveElement(edge)); _targetGraphView.RemoveElement(node); } foreach (var node in BooleanGetFlagNodes) { if (node.EntryPoint) { continue; } Edges.Where(x => x.input.node == node).ToList().ForEach(edge => _targetGraphView.RemoveElement(edge)); _targetGraphView.RemoveElement(node); } foreach (var node in BooleanSetFlagNodes) { if (node.EntryPoint) { continue; } Edges.Where(x => x.input.node == node).ToList().ForEach(edge => _targetGraphView.RemoveElement(edge)); _targetGraphView.RemoveElement(node); } foreach (var node in MoveToPosNodes) { if (node.EntryPoint) { continue; } Edges.Where(x => x.input.node == node).ToList().ForEach(edge => _targetGraphView.RemoveElement(edge)); _targetGraphView.RemoveElement(node); } }