static MapLayer() { layerParsers = new Dictionary <string, LayerParser>(); // register layer types ValueMapLayer16.Register(); ColorMapLayer.Register(); }
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; }
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); }