Beispiel #1
0
            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);
            }
Beispiel #2
0
        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));
        }
Beispiel #3
0
            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));
            }