예제 #1
0
            public override void Save(GameXmlWriter writer, Element element, string attribute, object value)
            {
                writer.WriteStartElement(attribute);
                if (element == null || !GameSaver.IsImpliedType(element, attribute, "list"))
                {
                    writer.WriteAttributeString("type", "list");
                }

                QuestList <object> list = (QuestList <object>)value;

                foreach (var item in list)
                {
                    FieldSaver.SaveValue(writer, "value", item);
                }
                writer.WriteEndElement();
            }
예제 #2
0
            public void Save(GameXmlWriter writer, Element element, string attribute, object value)
            {
                writer.WriteStartElement(attribute);
                if (element == null || !GameSaver.IsImpliedType(element, attribute, "scriptdictionary"))
                {
                    writer.WriteAttributeString("type", "scriptdictionary");
                }

                QuestDictionary <IScript> dictionary = (QuestDictionary <IScript>)value;

                foreach (var item in dictionary)
                {
                    writer.WriteStartElement("item");
                    writer.WriteAttributeString("key", item.Key);
                    writer.WriteString(GameSaver.SaveScript(writer, item.Value, 0));
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
예제 #3
0
            public override void Save(GameXmlWriter writer, Element element, string attribute, object value)
            {
                writer.WriteStartElement(attribute);
                if (element == null || !GameSaver.IsImpliedType(element, attribute, TypeName))
                {
                    writer.WriteAttributeString("type", TypeName);
                }

                var dictionary = (QuestDictionary <T>)value;

                foreach (var item in dictionary)
                {
                    writer.WriteStartElement("item");
                    writer.WriteStartElement("key");
                    writer.WriteString(item.Key);
                    writer.WriteEndElement();
                    WriteXml(writer, item.Value);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
예제 #4
0
 protected void WriteAttribute(GameXmlWriter writer, Element element, string attribute, string type, string value)
 {
     if (!s_regex.IsMatch(attribute))
     {
         // For attribute names with spaces or accented characters, we output
         //      <attr name="my attribute" ... />
         writer.WriteStartElement("attr");
         writer.WriteAttributeString("name", attribute);
     }
     else
     {
         // For attribute names without spaces, we output
         //      <myattribute ... />
         writer.WriteStartElement(attribute);
     }
     if (element == null || !GameSaver.IsImpliedType(element, attribute, type) || value.Length == 0)
     {
         writer.WriteAttributeString("type", type);
     }
     writer.WriteString(value);
     writer.WriteEndElement();
 }