Beispiel #1
0
        public static Dictionary <int, KeyItemDefinition> LoadKeyItems(XmlDocument keyItemDoc)
        {
            var keyItemDefinitions = new Dictionary <int, KeyItemDefinition>();

            var keyItemNodes = keyItemDoc.SelectNodes("data/KeyItem");

            foreach (XmlNode keyItemNode in keyItemNodes)
            {
                var index = int.Parse(keyItemNode?.Attributes["Index"]?.Value ?? "-1");

                if (index == -1)
                {
                    throw new InvalidOperationException("Invalid Key Item index.");
                }

                var nameKey = keyItemNode?.Attributes["Name"].Value;

                var info          = new List <string>();
                var dialogueNodes = keyItemNode.ChildNodes;
                var dialogueKeys  = new List <string>();
                foreach (XmlNode dialogueXml in dialogueNodes)
                {
                    dialogueKeys.Add(dialogueXml.Attributes["Key"].Value);
                }

                keyItemDefinitions[index] = new KeyItemDefinition {
                    NameKey = nameKey, DialogueKeys = dialogueKeys
                };
            }

            return(keyItemDefinitions);
        }
Beispiel #2
0
        public KeyItemViewModel(int index, KeyItemDefinition keyItemDefinition)
        {
            this.index        = index;
            this.nameKey      = keyItemDefinition.NameKey;
            this.DialogueKeys = new ObservableCollection <Wrapper <string> >(keyItemDefinition.DialogueKeys.Select(k => k.Wrap()) ?? new List <Wrapper <string> >());
            this.DialogueKeys.CollectionChanged += CollectionChanged;
            this.RegisterDialogueKeys();

            this.initialStringValue = this.StringValue;
        }