public GridLayerContent(XmlNode node, LevelContent level, GridLayerSettingsContent settings)
     : base(node)
 {
     if (settings.ExportAsObjects)
     {
         this.RectangleData = new List<Rectangle>();
         foreach (XmlNode rectNode in node.SelectNodes("rect"))
         {
             Rectangle rect = Rectangle.Empty;
             if (rectNode.Attributes["x"] != null)
                 rect.X = int.Parse(rectNode.Attributes["x"].Value, CultureInfo.InvariantCulture);
             if (rectNode.Attributes["y"] != null)
                 rect.Y = int.Parse(rectNode.Attributes["y"].Value, CultureInfo.InvariantCulture);
             if (rectNode.Attributes["w"] != null)
                 rect.Width = int.Parse(rectNode.Attributes["w"].Value, CultureInfo.InvariantCulture);
             if (rectNode.Attributes["h"] != null)
                 rect.Height = int.Parse(rectNode.Attributes["h"].Value, CultureInfo.InvariantCulture);
             if (rect != Rectangle.Empty)
                 this.RectangleData.Add(rect);
         }
     }
     else
     {
         // Read in XML as a single un-delimited string value.
         string rawData = string.Join(string.Empty, node.InnerText.Split(new string[] { settings.NewLine }, StringSplitOptions.None));
         // Convert this string to byte data.
         byte[] data = System.Text.Encoding.UTF8.GetBytes(rawData);
         // Convert byte data to base 64 string.
         this.RawData = Convert.ToBase64String(data);
     }
 }
 internal static void Write(ContentWriter writer, LayerSettingsContent content)
 {
     if (content is GridLayerSettingsContent)
     {
         GridLayerSettingsContent gContent = content as GridLayerSettingsContent;
         writer.Write("g");
         writer.Write(gContent.GridColor);
         writer.Write(gContent.GridDrawSize);
         writer.Write(gContent.GridSize);
         writer.Write(gContent.Name);
         writer.Write(gContent.ExportAsObjects);
         writer.Write(gContent.NewLine);
     }
     else if (content is ObjectLayerSettingsContent)
     {
         ObjectLayerSettingsContent oContent = content as ObjectLayerSettingsContent;
         writer.Write("o");
         writer.Write(oContent.GridColor);
         writer.Write(oContent.GridDrawSize);
         writer.Write(oContent.GridSize);
         writer.Write(oContent.Name);
     }
     else if (content is TileLayerSettingsContent)
     {
         TileLayerSettingsContent tContent = content as TileLayerSettingsContent;
         writer.Write("t");
         writer.Write(tContent.GridColor);
         writer.Write(tContent.GridDrawSize);
         writer.Write(tContent.GridSize);
         writer.Write(tContent.Name);
         writer.Write(tContent.ExportTileIDs);
         writer.Write(tContent.ExportTileSize);
         writer.Write(tContent.MultipleTilesets);
     }
 }
 internal static LayerSettingsContent Parse(XmlNode node)
 {
     LayerSettingsContent content = null;
     switch (node.Name)
     {
         case "grid":
             content = new GridLayerSettingsContent(node);
             break;
         case "tiles":
             content = new TileLayerSettingsContent(node);
             break;
         case "objects":
             content = new ObjectLayerSettingsContent(node);
             break;
     }
     return content;
 }
Example #4
0
        internal static LayerSettingsContent Read(XmlNode node)
        {
            LayerSettingsContent content = null;

            switch (node.Name)
            {
            case "grid":
                content = new GridLayerSettingsContent(node);
                break;

            case "tiles":
                content = new TileLayerSettingsContent(node);
                break;

            case "objects":
                content = new ObjectLayerSettingsContent(node);
                break;
            }
            return(content);
        }