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 object RunDelegateFunction(/* Element */ object obj, string del, params object[] parameters) { Element element = GetParameter <Element>(obj, "RunDelegateFunction", "object"); DelegateImplementation impl = element.Fields.Get(del) as DelegateImplementation; if (impl == null) { throw new Exception(string.Format("Object '{0}' has no delegate implementation '{1}'", element.Name, del)); } Parameters paramValues = new Parameters(); int cnt = 0; foreach (object p in parameters) { paramValues.Add((string)impl.Definition.Fields[FieldDefinitions.ParamNames][cnt], p); cnt++; } return(m_worldModel.RunDelegateScript(impl.Implementation.Fields[FieldDefinitions.Script], paramValues, element)); }
public override void Save(GameXmlWriter writer, Element element, string attribute, object value) { DelegateImplementation impl = (DelegateImplementation)value; base.WriteAttribute(writer, element, attribute, impl.Definition.Name, GameSaver.SaveScript(writer, impl.Implementation.Fields[FieldDefinitions.Script], 1)); }