Ejemplo n.º 1
0
        public void deserializeFromXml(string filename)
        {
            m_document.Load(filename);

            XmlNode objectBuilderNode = Helper.XmlHelper.getNodeByName(m_document.ChildNodes, "ObjectBuilder");
            if (objectBuilderNode == null)
                return;

            Parameters.Clear();
            m_scriptObjects.Clear();

            foreach (XmlAttribute attrib in objectBuilderNode.Attributes)
            {
                if (attrib.Name == "name")
                    this.m_name = attrib.Value;
                else if (attrib.Name == "offset_x")
                {
                    double x;
                    if (double.TryParse(attrib.Value, out x))
                        m_offset.X = x;
                }
                else if (attrib.Name == "offset_y")
                {
                    double y;
                    if (double.TryParse(attrib.Value, out y))
                        m_offset.Y = y;
                }
                else if (attrib.Name == "is_macro")
                {
                    bool.TryParse(attrib.Value, out this.m_isMacro);
                }
            }

            // Parameters
            XmlNode parameterNode = Helper.XmlHelper.getNodeByName(objectBuilderNode.ChildNodes, "Parameters");
            if (parameterNode != null)
            {
                foreach (XmlNode parameter in parameterNode.ChildNodes)
                {
                    if (parameter is XmlElement && parameter.Name == "Parameter")
                    {
                        XmlElement param = parameter as XmlElement;
                        Parameter p = new Parameter();
                        p.deserializeFromXml(param);
                        AddParameter(p);
                    }
                }
            }

            // Objects
            XmlNode objectsNode = Helper.XmlHelper.getNodeByName(objectBuilderNode.ChildNodes, "Objects");
            if (objectsNode != null)
            {
                foreach (XmlNode object_ in objectsNode.ChildNodes)
                {
                    if (object_ is XmlElement)
                    {
                        IScriptObject so = null;
                        XmlElement obj = object_ as XmlElement;
                        if (obj.Name == "GameObject")
                        {
                            so = new GameObject(this);
                            so.deserializeFromXml(obj);
                        }
                        else if (obj.Name == "MacroCall")
                        {
                            so = new MacroCall();
                            so.deserializeFromXml(obj);
                        }
                        else if (obj.Name == "MacroRegistration")
                        {
                            so = new MacroRegistration();
                            so.deserializeFromXml(obj);
                        }
                        else if (obj.Name == "FunctionCall")
                        {
                            so = new FunctionCall();
                            so.deserializeFromXml(obj);
                        }
                        else if (obj.Name == "Function")
                        {
                            so = new Function();
                            so.deserializeFromXml(obj);
                        }
                        if (so != null)
                            m_scriptObjects.Add(so);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void deserializeFromXml(XmlElement parent)
        {
            foreach (XmlAttribute attrib in parent.Attributes)
            {
                if (attrib.Name == "name")
                    this.m_name = attrib.Value;
                else if (attrib.Name == "type")
                {
                    Enum.TryParse(attrib.Value, out m_type);
                }
                else if (attrib.Name == "semantic")
                {
                    Enum.TryParse(attrib.Value, out m_semantic);
                }
            }

            XmlNode valuesNode = Helper.XmlHelper.getNodeByName(parent.ChildNodes, "Values");
            if (valuesNode != null && valuesNode.FirstChild != null)
                m_values = valuesNode.FirstChild.Value;

            XmlNode subParametersNode = Helper.XmlHelper.getNodeByName(parent.ChildNodes, "Subparameters");
            if (subParametersNode != null)
            {
                foreach (XmlNode subp in subParametersNode.ChildNodes)
                {
                    if (subp is XmlElement && subp.Name == "Parameter")
                    {
                        Parameter p = new Parameter();
                        p.deserializeFromXml(subp as XmlElement);
                        m_subParams.Add(p);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void deserializeFromXml(XmlElement parent)
        {
            m_elementNode = parent;
            foreach (XmlAttribute attrib in parent.Attributes)
            {
                if (attrib.Name == "name")
                    this.m_name = attrib.Value;
                else if (attrib.Name == "id")
                    this.m_id = attrib.Value;
            }

            m_parameterNode = Helper.XmlHelper.getNodeByName(m_elementNode.ChildNodes, "Parameters") as XmlElement;
            // Parameter
            if (m_parameterNode != null)
            {
                foreach (XmlNode parameter in m_parameterNode.ChildNodes)
                {
                    if (parameter is XmlElement && parameter.Name == "Parameter")
                    {
                        Parameter p = new Parameter();
                        p.deserializeFromXml(parameter as XmlElement);
                        m_parameter.Add(p);
                    }
                }
            }
        }