public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { IScript script = (IScript)value; string savedScript = script.Save(new Context()); if (savedScript.Trim().Length > 0) { // TO DO: Will need to extract variables for parameters to a "useanything" script in the same way if (element.Type == ObjectType.Command) { List <string> variables = GetCommandPatternVariableNames(element); string commandVariables = string.Empty; foreach (string variable in variables) { commandVariables += string.Format("var {0} = parameters['{0}'];\n", variable); } savedScript = commandVariables + savedScript; base.WriteAttribute(writer, element, attribute, string.Format("function(parameters) {{ {0} }}", savedScript), isFinal); } else { string parameters = string.Empty; if (attribute.StartsWith("changed")) { parameters = "oldvalue"; } base.WriteAttribute(writer, element, attribute, string.Format("function({1}) {{ {0} }}", savedScript, parameters), isFinal); } } }
public string Save() { int total = m_elements.Count; int done = 0; GameWriter writer = new GameWriter(); foreach (Element e in m_elements.Values) { if (Progress != null) { Progress(this, new ProgressEventArgs { PercentComplete = (int)(((double)done / total) * 100) }); } IElementSaver saver; if (m_elementSavers.TryGetValue(e.ElemType, out saver)) { saver.Save(e, writer); } else { throw new Exception("ERROR: No ElementSaver for type " + e.ElemType.ToString()); } done++; } return(writer.Save()); }
public void Save(Element e, GameWriter writer) { string expression = e.Fields[FieldDefinitions.Function].Save(new Context()); expression = Utility.ReplaceDynamicTemplateVariableNames(expression); writer.AddLine(string.Format("dynamicTemplates.{0} = function(params) {{ return {1}; }};", e.Name, expression)); }
public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { QuestList <string> list = (QuestList <string>)value; string saveString = "[" + String.Join(", ", list.Select(s => Utility.EscapeString(s)).ToArray()) + "]"; base.WriteAttribute(writer, element, attribute, saveString, isFinal); }
public string Save() { int total = m_elements.Count; int done = 0; GameWriter writer = new GameWriter(); foreach (Element e in m_elements.Values) { if (Progress != null) { Progress(this, new ProgressEventArgs { PercentComplete = (int)(((double)done / total) * 100) }); } IElementSaver saver; if (m_elementSavers.TryGetValue(e.ElemType, out saver)) { saver.Save(e, writer); } else { throw new Exception("ERROR: No ElementSaver for type " + e.ElemType.ToString()); } done++; } return writer.Save(); }
public void Save(Element e, GameWriter writer) { if (e.Fields[FieldDefinitions.TemplateName] == "EditorVerbDefaultExpression") { return; } writer.AddLine(string.Format("templates.t_{0} = \"{1}\"", e.Fields[FieldDefinitions.TemplateName], e.Fields[FieldDefinitions.Text].Replace("\n", "").Replace("\r", ""))); }
public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { string pattern = (string)value; GenerateUniqueGroupNames groupNamer = new GenerateUniqueGroupNames(); pattern = replaceNamedGroups.Replace(pattern, groupNamer.MatchEvaluator); base.Save(writer, element, attribute, pattern, isFinal); }
protected void WriteAttribute(GameWriter writer, Element element, string attribute, string value, bool isFinal) { if (attribute.Contains(" ")) { attribute = attribute.Replace(" ", Utility.SpaceReplacementString); } writer.AddLine(string.Format("\"{0}\": {1}{2}", attribute, value, isFinal ? "" : ",")); }
public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { DelegateImplementation impl = (DelegateImplementation)value; // TO DO: "function()" will need to include parameter names base.WriteAttribute(writer, element, attribute, string.Format("function() {{ {0} }}", impl.Implementation.Fields[FieldDefinitions.Script].Save(new Context())), isFinal); }
public void Save(Element e, GameWriter writer) { string paramNames = string.Join(", ", e.Fields[FieldDefinitions.ParamNames]); paramNames = Utility.ReplaceReservedVariableNames(paramNames); writer.AddLine("function " + e.Name.Replace(" ", Utility.SpaceReplacementString) + "(" + paramNames + ")"); writer.AddLine("{"); writer.AddLine(e.Fields[FieldDefinitions.Script].Save()); writer.AddLine("}"); }
public void Save(Element e, GameWriter writer) { string paramNames = string.Join(", ", e.Fields[FieldDefinitions.ParamNames]); paramNames = Utility.ReplaceReservedVariableNames(paramNames); writer.AddLine("function " + e.Name.Replace(" ", Utility.SpaceReplacementString) + "(" + paramNames + ")"); writer.AddLine("{"); var context = new Context(); context.AddLocalVariable(e.Fields[FieldDefinitions.ParamNames].ToArray()); writer.AddLine(e.Fields[FieldDefinitions.Script].Save(context)); writer.AddLine("}"); }
public void Save(Element e, GameWriter writer) { base.SaveElementFields(e.Name, e, writer); string postElementScript = writer.GetPostElementScript(e); if (postElementScript.Length > 0) { writer.AddLine(postElementScript); } if (allObjectsArray.ContainsKey(e.Type)) { writer.AddLine(string.Format("{0}.push({1});", allObjectsArray[e.Type], e.MetaFields[MetaFieldDefinitions.MappedName])); } writer.AddLine(string.Format("objectsNameMap[\"{0}\"] = {1};", e.Name, e.MetaFields[MetaFieldDefinitions.MappedName])); }
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 void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { if (value == null) { return; } IFieldSaver saver; if (TryGetSaver(element, attribute, value.GetType(), out saver)) { saver.Save(writer, element, attribute, value, isFinal); } else { throw new Exception(string.Format("ERROR: No FieldSaver for attribute {0}, type: {1}", attribute, value.GetType().ToString())); } }
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])); } }
protected void SaveElementFields(string name, Element e, GameWriter writer) { string mappedName = e.MetaFields[MetaFieldDefinitions.MappedName]; writer.AddLine(mappedName + " = {"); e.Fields.Set("_js_name", mappedName); e.Fields.Set("_types", new QuestList<string>(e.Fields.TypeNames)); int count = 0; int length = e.Fields.FieldNames.Count(); foreach (string field in e.Fields.FieldNames) { count++; object value = ConvertField(e, field, e.Fields.Get(field)); fieldSaver.Save(writer, e, field, value, count == length); } writer.AddLine("};"); writer.AddLine(string.Format("elementsNameMap[\"{0}\"] = {1};", e.Name, e.MetaFields[MetaFieldDefinitions.MappedName])); writer.MarkElementWritten(e); }
protected void SaveElementFields(string name, Element e, GameWriter writer) { string mappedName = e.MetaFields[MetaFieldDefinitions.MappedName]; writer.AddLine(mappedName + " = {"); e.Fields.Set("_js_name", mappedName); e.Fields.Set("_types", new QuestList <string>(e.Fields.TypeNames)); int count = 0; int length = e.Fields.FieldNames.Count(); foreach (string field in e.Fields.FieldNames) { count++; object value = ConvertField(e, field, e.Fields.Get(field)); fieldSaver.Save(writer, e, field, value, count == length); } writer.AddLine("};"); writer.AddLine(string.Format("elementsNameMap[\"{0}\"] = {1};", e.Name, e.MetaFields[MetaFieldDefinitions.MappedName])); writer.MarkElementWritten(e); }
public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { QuestDictionary <T> dictionary = (QuestDictionary <T>)value; string result = "{"; if (dictionary.Dictionary.Count > 0) { int count = 0; foreach (var item in dictionary.Dictionary) { count++; result += string.Format("\"{0}\": {1}{2} ", item.Key, ValueSaver(item.Value), count == dictionary.Dictionary.Count ? "" : ","); } } else { result += string.Format("\"{0}\": {1} ", "__dummyKey", ValueSaver(default(T))); } result += "}"; base.WriteAttribute(writer, element, attribute, result, isFinal); }
public void Save(Element e, GameWriter writer) { base.SaveElementFields(e.Name, e, writer); string postElementScript = writer.GetPostElementScript(e); if (postElementScript.Length > 0) writer.AddLine(postElementScript); if (allObjectsArray.ContainsKey(e.Type)) { writer.AddLine(string.Format("{0}.push({1});", allObjectsArray[e.Type], e.MetaFields[MetaFieldDefinitions.MappedName])); } writer.AddLine(string.Format("objectsNameMap[\"{0}\"] = {1};", e.Name, e.MetaFields[MetaFieldDefinitions.MappedName])); }
public void Save(Element e, GameWriter writer) { base.SaveElementFields(e.Name, e, writer); }
public void Save(Element e, GameWriter writer) { // Do nothing, .js files will be picked up from the resources folder and embedded in game.js automatically }
public void Save(Element e, GameWriter writer) { base.SaveElementFields(e.Name, e, writer); writer.AddLine(string.Format("allTimers.push({0});", e.MetaFields[MetaFieldDefinitions.MappedName])); writer.AddLine(string.Format("objectsNameMap[\"{0}\"] = {1};", e.Name, e.MetaFields[MetaFieldDefinitions.MappedName])); }
public void Save(Element e, GameWriter writer) { // Delegate definitions don't need saving in Javascript }
public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { double number = (double)value; base.WriteAttribute(writer, element, attribute, number.ToString(), isFinal); }
public abstract void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal);
public void Save(Element e, GameWriter writer) { string expression = e.Fields[FieldDefinitions.Function].Save(); expression = Utility.ReplaceDynamicTemplateVariableNames(expression); writer.AddLine(string.Format("dynamicTemplates.{0} = function(params) {{ return {1}; }};", e.Name, expression)); }
public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { bool boolVal = (bool)value; base.WriteAttribute(writer, element, attribute, boolVal ? "true" : "false", isFinal); }
public void Save(Element e, GameWriter writer) { if (e.Fields[FieldDefinitions.TemplateName] == "EditorVerbDefaultExpression") return; writer.AddLine(string.Format("templates.t_{0} = \"{1}\"", e.Fields[FieldDefinitions.TemplateName], e.Fields[FieldDefinitions.Text].Replace("\n", "").Replace("\r", ""))); }
public override void Save(GameWriter writer, Element element, string attribute, object value, bool isFinal) { string strValue = (string)value; base.WriteAttribute(writer, element, attribute, Utility.EscapeString(strValue), isFinal); }