Exemplo n.º 1
0
            public void ReadXml(XmlReader reader)
            {
                string xml = reader.ReadOuterXml();

                reader = XmlReader.Create(new StringReader(xml));

                XmlReader reader2;

                while (!reader.EOF)
                {
                    if (reader.NodeType == XmlNodeType.Element)
                    {
                        if (reader.LocalName == "Name")
                        {
                            reader.Read();
                            Name = reader.ReadContentAsString();
                        }
                        else if (reader.LocalName == "ImagePath")
                        {
                            reader.Read();
                            ImagePath = reader.ReadContentAsString();
                        }
                        else if (reader.LocalName == "Pasabilities")
                        {
                            xml     = reader.ReadInnerXml();
                            reader2 = XmlReader.Create(new StringReader(xml));

                            XmlSerializer serializer = new XmlSerializer(typeof(bool[]));
                            bool[]        data       = (bool[])serializer.Deserialize(reader2);
                            Pasabilities = DataConversion.ExpandArray3D <bool>(data, 8, 8);
                        }
                        else if (reader.LocalName == "Priorities")
                        {
                            xml     = reader.ReadInnerXml();
                            reader2 = XmlReader.Create(new StringReader(xml));

                            XmlSerializer serializer = new XmlSerializer(typeof(int[]));
                            int[]         data       = (int[])serializer.Deserialize(reader2);
                            Priorities = DataConversion.ExpandArray2D <int>(data, 8);
                        }
                        else if (reader.LocalName == "TerrainTags")
                        {
                            xml     = reader.ReadInnerXml();
                            reader2 = XmlReader.Create(new StringReader(xml));

                            XmlSerializer serializer = new XmlSerializer(typeof(int[]));
                            int[]         data       = (int[])serializer.Deserialize(reader2);
                            TerrainTags = DataConversion.ExpandArray2D <int>(data, 8);
                        }
                        else if (reader.LocalName == "BushFlags")
                        {
                            xml     = reader.ReadInnerXml();
                            reader2 = XmlReader.Create(new StringReader(xml));

                            XmlSerializer serializer = new XmlSerializer(typeof(bool[]));
                            bool[]        data       = (bool[])serializer.Deserialize(reader2);
                            BushFlags = DataConversion.ExpandArray2D <bool>(data, 8);
                        }
                        else if (reader.LocalName == "CounterFlags")
                        {
                            xml     = reader.ReadInnerXml();
                            reader2 = XmlReader.Create(new StringReader(xml));

                            XmlSerializer serializer = new XmlSerializer(typeof(bool[]));
                            bool[]        data       = (bool[])serializer.Deserialize(reader2);
                            CounterFlags = DataConversion.ExpandArray2D <bool>(data, 8);
                        }
                        else if (reader.LocalName == "ReflectionFlags")
                        {
                            xml     = reader.ReadInnerXml();
                            reader2 = XmlReader.Create(new StringReader(xml));

                            XmlSerializer serializer = new XmlSerializer(typeof(bool[]));
                            bool[]        data       = (bool[])serializer.Deserialize(reader2);
                            ReflectionFlags = DataConversion.ExpandArray2D <bool>(data, 8);
                        }
                        else if (reader.LocalName == "BridgeFlags")
                        {
                            xml     = reader.ReadInnerXml();
                            reader2 = XmlReader.Create(new StringReader(xml));

                            XmlSerializer serializer = new XmlSerializer(typeof(bool[]));
                            bool[]        data       = (bool[])serializer.Deserialize(reader2);
                            BridgeFlags = DataConversion.ExpandArray2D <bool>(data, 8);
                        }
                        else if (reader.LocalName == "AutoTiles")
                        {
                            xml     = reader.ReadInnerXml();
                            reader2 = XmlReader.Create(new StringReader(xml));

                            XmlSerializer serializer = new XmlSerializer(typeof(string[]));
                            string[]      data       = (string[])serializer.Deserialize(reader2);
                            AutoTiles = data;
                        }
                        else if (reader.LocalName == "AutoTileTimers")
                        {
                            xml     = reader.ReadInnerXml();
                            reader2 = XmlReader.Create(new StringReader(xml));

                            XmlSerializer serializer = new XmlSerializer(typeof(float[]));
                            float[]       data       = (float[])serializer.Deserialize(reader2);
                            AutoTileTimers = data;
                        }
                        else
                        {
                            reader.Read();
                        }
                    }
                    else
                    {
                        reader.Read();
                    }
                }
            }