Esempio n. 1
0
    /// <summary>
    /// Carga de un documento XML de díalogos para un actor determinado.
    /// </summary>
    /// <param name="actor">Nombre interno o referencia del actor</param>
    /// <param name="doc">Documento XML que contiene los diálogos para el actor</param>
    private void LoadActorDocumentXML(string actor, XmlDocument doc)
    {
        ActorBrain actorBrain = dialogsManager.GetActorBrain(actor);

        XmlNodeList rootChildren = doc.DocumentElement.ChildNodes;

        foreach (XmlNode childNode in rootChildren)
        {
            switch (childNode.Name)
            {
            case "definitions":
                ProcessDefinitions(actorBrain, childNode);
                break;

            case "conditions":
            case "conditionsAnd":
            case "conditionsOr":
                ConditionGroup conditions = ProcessConditionGroup(actorBrain, null, childNode);
                actorBrain.GetDialogs().AddConditions(conditions);
                break;

            case "dialog":
                Dialog dialog = ProcessDialog(actorBrain, null, childNode);
                dialogsManager.AddActorDialog(actor, dialog);
                break;
            }
        }
    }