Ejemplo n.º 1
0
        static MapLayer()
        {
            layerParsers = new Dictionary <string, LayerParser>();

            // register layer types
            ValueMapLayer16.Register();
            ColorMapLayer.Register();
        }
Ejemplo n.º 2
0
        protected static MapLayer ParseLayer(WorldMap map, XmlReader r)
        {
            string layerName = null;
            int metersPerTile = 0;
            int metersPerSample = 0;
            float valueBase = 0;
            float valueRange = 0;
            float defaultValue = 0;

            // parse attributes
            for (int i = 0; i < r.AttributeCount; i++)
            {
                r.MoveToAttribute(i);

                // set the field in this object based on the element we just read
                switch (r.Name)
                {
                    case "Type":
                        break;
                    case "Name":
                        layerName = r.Value;
                        break;
                    case "MetersPerTile":
                        metersPerTile = int.Parse(r.Value);
                        break;
                    case "MetersPerSample":
                        metersPerSample = int.Parse(r.Value);
                        break;
                    case "ValueBase":
                        valueBase = float.Parse(r.Value);
                        break;
                    case "ValueRange":
                        valueRange = float.Parse(r.Value);
                        break;
                    case "DefaultValue":
                        defaultValue = float.Parse(r.Value);
                        break;

                }
            }

            r.MoveToElement(); //Moves the reader back to the element node.

            MapLayer layer = new ValueMapLayer16(map, layerName, metersPerTile, metersPerSample, valueBase, valueRange, defaultValue);

            if (!r.IsEmptyElement)
            {
                // now parse the sub-elements
                while (r.Read())
                {
                    // look for the start of an element
                    if (r.NodeType == XmlNodeType.Element)
                    {
                        // parse that element
                        // save the name of the element
                        string elementName = r.Name;
                        switch (elementName)
                        {
                            case "Property":
                                layer.Properties.ParseProperty(r);
                                break;
                        }
                    }
                    else if (r.NodeType == XmlNodeType.EndElement)
                    {
                        break;
                    }
                }
            }

            return layer;
        }
Ejemplo n.º 3
0
        protected static MapLayer ParseLayer(WorldMap map, XmlReader r)
        {
            string layerName       = null;
            int    metersPerTile   = 0;
            int    metersPerSample = 0;
            float  valueBase       = 0;
            float  valueRange      = 0;
            float  defaultValue    = 0;

            // parse attributes
            for (int i = 0; i < r.AttributeCount; i++)
            {
                r.MoveToAttribute(i);

                // set the field in this object based on the element we just read
                switch (r.Name)
                {
                case "Type":
                    break;

                case "Name":
                    layerName = r.Value;
                    break;

                case "MetersPerTile":
                    metersPerTile = int.Parse(r.Value);
                    break;

                case "MetersPerSample":
                    metersPerSample = int.Parse(r.Value);
                    break;

                case "ValueBase":
                    valueBase = float.Parse(r.Value);
                    break;

                case "ValueRange":
                    valueRange = float.Parse(r.Value);
                    break;

                case "DefaultValue":
                    defaultValue = float.Parse(r.Value);
                    break;
                }
            }

            r.MoveToElement(); //Moves the reader back to the element node.

            MapLayer layer = new ValueMapLayer16(map, layerName, metersPerTile, metersPerSample, valueBase, valueRange, defaultValue);

            if (!r.IsEmptyElement)
            {
                // now parse the sub-elements
                while (r.Read())
                {
                    // look for the start of an element
                    if (r.NodeType == XmlNodeType.Element)
                    {
                        // parse that element
                        // save the name of the element
                        string elementName = r.Name;
                        switch (elementName)
                        {
                        case "Property":
                            layer.Properties.ParseProperty(r);
                            break;
                        }
                    }
                    else if (r.NodeType == XmlNodeType.EndElement)
                    {
                        break;
                    }
                }
            }

            return(layer);
        }