public void Save(string path) { if (FilePath == null) { FilePath = FilePath.FromAbsolute(path, Directory.GetParent(path).FullName); } else { FilePath = FilePath.FromAbsolute(path, FilePath.BasePath); } XmlTextWriter writer = new XmlTextWriter(FilePath.Absolute, null); writer.Formatting = Formatting.Indented; writer.Indentation = 1; writer.IndentChar = '\t'; writer.WriteStartElement("Tileset"); if (SheetPath != null) { writer.WriteAttributeString("tilesheet", SheetPath.Relative); } writer.WriteAttributeString("tilesize", TileSize.ToString()); writer.WriteStartElement("TileProperties"); foreach (TileProperties properties in this.properties.Values) { if (properties.Name == "Default" && properties == TileProperties.Default) { continue; } properties.Save(writer); } writer.WriteEndElement(); foreach (Tile tile in this) { writer.WriteStartElement("Tile"); writer.WriteAttributeString("id", tile.Id.ToString()); writer.WriteAttributeString("name", tile.Name); writer.WriteAttributeString("properties", tile.Properties.Name); tile.Sprite.WriteTo(writer); writer.WriteEndElement(); // end Tile } writer.WriteEndElement(); writer.Close(); }
public void ChangeSheetPath(string path) { SheetPath = FilePath.FromAbsolute(path, FilePath.BasePath); }