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(); }
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(); }
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(); }
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(); }