public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { Element reference = (Element)value; if (writer.IsElementWritten(reference)) { base.WriteAttribute(writer, element, attribute, ((Element)value).MetaFields[MetaFieldDefinitions.MappedName], isFinal); } else { writer.AddPostElementScript(element, string.Format("objectReferences.push([\"{0}\", \"{1}\", \"{2}\"]);", element.MetaFields[MetaFieldDefinitions.MappedName], attribute, reference.MetaFields[MetaFieldDefinitions.MappedName])); } }
public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { QuestList <Element> list = (QuestList <Element>)value; if (list.Count == 0) { // Just write a blank list base.WriteAttribute(writer, element, attribute, "new Array()", isFinal); } foreach (Element item in list) { writer.AddPostElementScript(element, string.Format( "objectListReferences.push([\"object_{0}\", \"{1}\", \"object_{2}\"]);", element.MetaFields[MetaFieldDefinitions.MappedName], attribute, item.Name)); } }
public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { QuestDictionary <Element> dictionary = (QuestDictionary <Element>)value; if (dictionary.Dictionary.Count == 0) { // Just write a blank dictionary base.WriteAttribute(writer, element, attribute, "new Object()", isFinal); } foreach (var item in dictionary.Dictionary) { writer.AddPostElementScript(element, string.Format( "objectDictionaryReferences.push([\"object_{0}\", \"{1}\", \"{2}\", \"object_{3}\"]);", element.MetaFields[MetaFieldDefinitions.MappedName], attribute, item.Key, item.Value.MetaFields[MetaFieldDefinitions.MappedName])); } }