コード例 #1
0
    //Devuelve un diccionario con el id de las opciones y texto de un nodo especifico
    Dictionary <int, string> GetDialogueOptions(DialogueMapSerializedObject dialogueNode)
    {
        var options = new Dictionary <int, string>();

        //Por cada nodo
        foreach (var node in dialog.nodes)
        {
            //Si el nodo es de tipo "Option"
            if (node.windowTitle == "Option")
            {
                //Por cada parentId
                foreach (var parentId in node.parentIds)
                {
                    /* Si hay coincidencia entre el parentId y el id del dialogueNode
                    * Significa que esa opción tiene como padre al nodo de dialogo */
                    if (parentId == dialogueNode.id)
                    {
                        options.Add(node.id, node.data);
                    }
                }
            }
        }

        return(options);
    }
コード例 #2
0
    //Convierte de DialogueMapSerializedObject a DialogueObject, que es el objeto que se le entrega al usuario final
    DialogueObject GetDialogueObject(DialogueMapSerializedObject dialogueNode)
    {
        /* Guardo el id y el dialogo
         * Las opciones se las pido a GetDialogueOptions que me entrega una Diccionario |Key: id del option| |Value: el texto del option| */
        var dialogueObj = new DialogueObject
        {
            id       = dialogueNode.id,
            dialogue = dialogueNode.data,
            options  = GetDialogueOptions(dialogueNode)
        };

        /* Una vez que tengo el diccionario de opciones creado pido el linkeo entre una opción y el siguiente nodo a GetOptionsLinks()
         * Que me devuelve |Key: id del option| |Value: id del nodo al que linkea| */
        dialogueObj.optionsLinks = GetOptionsLinks(dialogueObj.options);
        return(dialogueObj);
    }