Exemplo n.º 1
0
    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;
    }
Exemplo n.º 2
0
    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();
    }
Exemplo n.º 3
0
    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);
        }
    }