public void ValidateEmptyTextureFileMetadata() { var f = new TextureSetFile(); var root = TextureSetFileWriter.GenerateRoot(f); var md = root.Element(Namespace + "metadata"); md.HasAttributes.Should().Be(false); md.HasElements.Should().Be(false); }
public void ValidateTextureTile() { var tt = new TextureTile(); var root = TextureSetFileWriter.GenerateTile(tt); root.Name.Should().Be(Namespace + "tile"); root.Should().HaveAttribute("x", "0"); root.Should().HaveAttribute("y", "0"); }
public void ValidateEmptyTextureCollectionMetaData() { var tc = new TileTextureCollection(); var root = TextureSetFileWriter.GenerateCollection(tc); root.Name.Should().Be(Namespace + "collection"); root.Should().HaveAttribute("id", ""); root.Element(Namespace + "metadata").Should().BeNull(); }
public void SavingEmptyTextureFileMustNotCrash() { var f = new TextureSetFile(); var root = TextureSetFileWriter.GenerateRoot(f); root.Name.Should().Be(Namespace + "tileset"); root.Should().HaveAttribute("width", "0"); root.Should().HaveAttribute("height", "0"); root.Should().HaveAttribute("type", "Grid"); root.Should().HaveElement(Namespace + "metadata"); }
public void ValidateEmptyTextureGridMetaData() { var tc = new TextureGrid(); var root = TextureSetFileWriter.GenerateGrid(tc); root.Name.Should().Be(Namespace + "grid"); root.Should().HaveAttribute("name", ""); root.Should().HaveAttribute("x", "0"); root.Should().HaveAttribute("y", "0"); root.Attribute("cell-width").Should().BeNull(); root.Attribute("cell-height").Should().BeNull(); root.Should().HaveElement(Namespace + "metadata"); }
public void ValidateTextureGridOptionals() { var tc = new TextureGrid { AnchorX = 1, AnchorY = 2, Width = 3, Height = 4 }; var root = TextureSetFileWriter.GenerateGrid(tc); root.Should().HaveAttribute("anchor-x", "1"); root.Should().HaveAttribute("anchor-y", "2"); root.Element(Namespace + "metadata").Should().HaveAttribute("grid-width", "3"); root.Element(Namespace + "metadata").Should().HaveAttribute("grid-height", "4"); }
public void ValidateTextureTileMultipleTags() { var tt = new TextureTile(); tt.Tags.Add("tag1"); tt.Tags.Add("tag2"); var root = TextureSetFileWriter.GenerateTile(tt); root.Name.Should().Be(Namespace + "tile"); root.Attribute("tag").Should().BeNull(); root.Should().HaveAttribute("x", "0"); root.Should().HaveAttribute("y", "0"); var l = root.Elements(Namespace + "tag").ToList(); l.Count.Should().Be(2); l[0].Should().HaveValue("tag1"); l[1].Should().HaveValue("tag2"); }
public void ValidateTextureFileProperties() { var f = new TextureSetFile { Properties = new ReadOnlyDictionary <string, string>(new Dictionary <string, string> { { "pname1", "pvalue1" }, { "pname2", "pvalue2" } }) }; var root = TextureSetFileWriter.GenerateRoot(f); var md = root.Element(Namespace + "metadata"); md.HasAttributes.Should().Be(false); var elements = md.Elements(Namespace + "property").ToList(); elements.Should().HaveCount(2); elements[0].Should().HaveAttribute("name", "pname1").And.HaveValue("pvalue1"); elements[1].Should().HaveAttribute("name", "pname2").And.HaveValue("pvalue2"); }
public async Task SaveFile(string fileName) { var textureSet = SelectedItem switch { TextureSetFile s => s, TileTextureCollection c => c.Parent, TextureGrid g => g.Parent?.Parent, TextureTile t => t.Parent?.Parent?.Parent, _ => null }; if (textureSet == null) { return; } GeneratorPreferencesWriter.EnsureParentDirectoryExists(fileName); var doc = TextureSetFileWriter.GenerateXml(textureSet); await using var stream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None, bufferSize: 4096, useAsync: true); await doc.SaveAsync(stream, default, default);