Use folder structure namespaces

This commit is contained in:
Daniel Cronqvist 2024-08-16 23:27:15 +02:00
parent 0a11cdd791
commit e6d94247c1
90 changed files with 252 additions and 106 deletions

View file

@ -1,5 +1,5 @@
test: test:
dotnet test dotnet test src/DotTiled.sln
BENCHMARK_SOURCES = DotTiled.Benchmark/Program.cs DotTiled.Benchmark/DotTiled.Benchmark.csproj BENCHMARK_SOURCES = DotTiled.Benchmark/Program.cs DotTiled.Benchmark/DotTiled.Benchmark.csproj
BENCHMARK_OUTPUTDIR = DotTiled.Benchmark/BenchmarkDotNet.Artifacts BENCHMARK_OUTPUTDIR = DotTiled.Benchmark/BenchmarkDotNet.Artifacts

View file

@ -1,3 +1,5 @@
using DotTiled.Model.Layers;
namespace DotTiled.Tests; namespace DotTiled.Tests;
public static partial class DotTiledAssert public static partial class DotTiledAssert

View file

@ -1,3 +1,5 @@
using DotTiled.Model.Tilesets;
namespace DotTiled.Tests; namespace DotTiled.Tests;
public static partial class DotTiledAssert public static partial class DotTiledAssert

View file

@ -1,3 +1,5 @@
using DotTiled.Model.Layers;
namespace DotTiled.Tests; namespace DotTiled.Tests;
public static partial class DotTiledAssert public static partial class DotTiledAssert

View file

@ -1,5 +1,6 @@
using System.Collections; using System.Collections;
using System.Numerics; using System.Numerics;
using DotTiled.Model;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,20 +1,22 @@
using DotTiled.Model.Layers.Objects;
namespace DotTiled.Tests; namespace DotTiled.Tests;
public static partial class DotTiledAssert public static partial class DotTiledAssert
{ {
internal static void AssertObject(Object expected, Object actual) internal static void AssertObject(Model.Layers.Objects.Object expected, Model.Layers.Objects.Object actual)
{ {
// Attributes // Attributes
AssertEqual(expected.ID, actual.ID, nameof(Object.ID)); AssertEqual(expected.ID, actual.ID, nameof(Model.Layers.Objects.Object.ID));
AssertEqual(expected.Name, actual.Name, nameof(Object.Name)); AssertEqual(expected.Name, actual.Name, nameof(Model.Layers.Objects.Object.Name));
AssertEqual(expected.Type, actual.Type, nameof(Object.Type)); AssertEqual(expected.Type, actual.Type, nameof(Model.Layers.Objects.Object.Type));
AssertEqual(expected.X, actual.X, nameof(Object.X)); AssertEqual(expected.X, actual.X, nameof(Model.Layers.Objects.Object.X));
AssertEqual(expected.Y, actual.Y, nameof(Object.Y)); AssertEqual(expected.Y, actual.Y, nameof(Model.Layers.Objects.Object.Y));
AssertEqual(expected.Width, actual.Width, nameof(Object.Width)); AssertEqual(expected.Width, actual.Width, nameof(Model.Layers.Objects.Object.Width));
AssertEqual(expected.Height, actual.Height, nameof(Object.Height)); AssertEqual(expected.Height, actual.Height, nameof(Model.Layers.Objects.Object.Height));
AssertEqual(expected.Rotation, actual.Rotation, nameof(Object.Rotation)); AssertEqual(expected.Rotation, actual.Rotation, nameof(Model.Layers.Objects.Object.Rotation));
AssertEqual(expected.Visible, actual.Visible, nameof(Object.Visible)); AssertEqual(expected.Visible, actual.Visible, nameof(Model.Layers.Objects.Object.Visible));
AssertEqual(expected.Template, actual.Template, nameof(Object.Template)); AssertEqual(expected.Template, actual.Template, nameof(Model.Layers.Objects.Object.Template));
AssertProperties(expected.Properties, actual.Properties); AssertProperties(expected.Properties, actual.Properties);

View file

@ -1,3 +1,5 @@
using DotTiled.Model.Properties;
namespace DotTiled.Tests; namespace DotTiled.Tests;
public static partial class DotTiledAssert public static partial class DotTiledAssert

View file

@ -1,3 +1,6 @@
using DotTiled.Model.Layers;
using DotTiled.Model.Tilesets;
namespace DotTiled.Tests; namespace DotTiled.Tests;
public static partial class DotTiledAssert public static partial class DotTiledAssert

View file

@ -1,4 +1,6 @@
using System.Xml; using System.Xml;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,3 +1,6 @@
using DotTiled.Model;
using DotTiled.Model.Layers;
namespace DotTiled.Tests; namespace DotTiled.Tests;
public partial class TestData public partial class TestData

View file

@ -1,4 +1,8 @@
using System.Globalization; using System.Globalization;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Tilesets;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,4 +1,7 @@
using System.Globalization; using System.Globalization;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Tilesets;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,4 +1,7 @@
using System.Globalization; using System.Globalization;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,4 +1,8 @@
using System.Globalization; using System.Globalization;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,4 +1,7 @@
using System.Globalization; using System.Globalization;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Tilesets;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,4 +1,7 @@
using System.Globalization; using System.Globalization;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Tilesets;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,4 +1,7 @@
using System.Globalization; using System.Globalization;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Tilesets;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,4 +1,9 @@
using System.Numerics; using System.Numerics;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Layers.Objects;
using DotTiled.Model.Properties;
using DotTiled.Model.Tilesets;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -1,3 +1,8 @@
using DotTiled.Model;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
using DotTiled.Serialization.Tmj;
namespace DotTiled.Tests; namespace DotTiled.Tests;
public partial class TmjMapReaderTests public partial class TmjMapReaderTests

View file

@ -1,4 +1,8 @@
using System.Xml; using System.Xml;
using DotTiled.Model;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
using DotTiled.Serialization.Tmx;
namespace DotTiled.Tests; namespace DotTiled.Tests;

View file

@ -2,7 +2,7 @@ using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Globalization; using System.Globalization;
namespace DotTiled; namespace DotTiled.Model;
public class Color : IParsable<Color>, IEquatable<Color> public class Color : IParsable<Color>, IEquatable<Color>
{ {

View file

@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using DotTiled.Model.Properties;
namespace DotTiled; namespace DotTiled.Model.Layers;
public abstract class BaseLayer public abstract class BaseLayer
{ {

View file

@ -1,6 +1,6 @@
using System; using System;
namespace DotTiled; namespace DotTiled.Model.Layers;
public enum DataEncoding public enum DataEncoding
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace DotTiled; namespace DotTiled.Model.Layers;
public class Group : BaseLayer public class Group : BaseLayer
{ {

View file

@ -1,4 +1,6 @@
namespace DotTiled; using DotTiled.Model.Tilesets;
namespace DotTiled.Model.Layers;
public class ImageLayer : BaseLayer public class ImageLayer : BaseLayer
{ {

View file

@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using DotTiled.Model.Layers.Objects;
namespace DotTiled; namespace DotTiled.Model.Layers;
public enum DrawOrder public enum DrawOrder
{ {

View file

@ -1,3 +1,3 @@
namespace DotTiled; namespace DotTiled.Model.Layers.Objects;
public class EllipseObject : Object { } public class EllipseObject : Object { }

View file

@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using DotTiled.Model.Properties;
namespace DotTiled; namespace DotTiled.Model.Layers.Objects;
public abstract class Object public abstract class Object
{ {

View file

@ -1,3 +1,3 @@
namespace DotTiled; namespace DotTiled.Model.Layers.Objects;
public class PointObject : Object { } public class PointObject : Object { }

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Numerics; using System.Numerics;
namespace DotTiled; namespace DotTiled.Model.Layers.Objects;
public class PolygonObject : Object public class PolygonObject : Object
{ {

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Numerics; using System.Numerics;
namespace DotTiled; namespace DotTiled.Model.Layers.Objects;
public class PolylineObject : Object public class PolylineObject : Object
{ {

View file

@ -1,3 +1,3 @@
namespace DotTiled; namespace DotTiled.Model.Layers.Objects;
public class RectangleObject : Object { } public class RectangleObject : Object { }

View file

@ -1,6 +1,6 @@
using System.Globalization; using System.Globalization;
namespace DotTiled; namespace DotTiled.Model.Layers.Objects;
public enum TextHorizontalAlignment public enum TextHorizontalAlignment

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Layers.Objects;
public class TileObject : Object public class TileObject : Object
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Layers;
public class TileLayer : BaseLayer public class TileLayer : BaseLayer
{ {

View file

@ -1,7 +1,10 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Model;
public enum MapOrientation public enum MapOrientation
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties;
public class BoolProperty : IProperty public class BoolProperty : IProperty
{ {

View file

@ -1,12 +1,12 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
namespace DotTiled; namespace DotTiled.Model.Properties;
public class ClassProperty : IProperty public class ClassProperty : IProperty
{ {
public required string Name { get; set; } public required string Name { get; set; }
public PropertyType Type => DotTiled.PropertyType.Class; public PropertyType Type => Model.Properties.PropertyType.Class;
public required string PropertyType { get; set; } public required string PropertyType { get; set; }
public required Dictionary<string, IProperty> Properties { get; set; } public required Dictionary<string, IProperty> Properties { get; set; }

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties;
public class ColorProperty : IProperty public class ColorProperty : IProperty
{ {

View file

@ -1,7 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace DotTiled; namespace DotTiled.Model.Properties.CustomTypes;
[Flags] [Flags]
public enum CustomClassUseAs public enum CustomClassUseAs

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace DotTiled; namespace DotTiled.Model.Properties.CustomTypes;
public enum CustomEnumStorageType public enum CustomEnumStorageType
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties.CustomTypes;
public abstract class CustomTypeDefinition public abstract class CustomTypeDefinition
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties;
public class FileProperty : IProperty public class FileProperty : IProperty
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties;
public class FloatProperty : IProperty public class FloatProperty : IProperty
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties;
public interface IProperty public interface IProperty
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties;
public class IntProperty : IProperty public class IntProperty : IProperty
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties;
public class ObjectProperty : IProperty public class ObjectProperty : IProperty
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties;
public enum PropertyType public enum PropertyType
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Properties;
public class StringProperty : IProperty public class StringProperty : IProperty
{ {

View file

@ -1,4 +1,7 @@
namespace DotTiled; using DotTiled.Model.Layers.Objects;
using DotTiled.Model.Tilesets;
namespace DotTiled.Model;
public class Template public class Template
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public class Frame public class Frame
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public enum GridOrientation public enum GridOrientation
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public enum ImageFormat public enum ImageFormat
{ {

View file

@ -1,6 +1,8 @@
using System.Collections.Generic; using System.Collections.Generic;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public class Tile public class Tile
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public class TileOffset public class TileOffset
{ {

View file

@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using DotTiled.Model.Properties;
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public enum ObjectAlignment public enum ObjectAlignment
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public class Transformations public class Transformations
{ {

View file

@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using DotTiled.Model.Properties;
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public class WangColor public class WangColor
{ {

View file

@ -1,4 +1,4 @@
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public class WangTile public class WangTile
{ {

View file

@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using DotTiled.Model.Properties;
namespace DotTiled; namespace DotTiled.Model.Tilesets;
public class Wangset public class Wangset
{ {

View file

@ -3,8 +3,11 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.IO.Compression; using System.IO.Compression;
using System.Linq; using System.Linq;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization;
internal static partial class Helpers internal static partial class Helpers
{ {

View file

@ -1,6 +1,7 @@
using System; using System;
using DotTiled.Model;
namespace DotTiled; namespace DotTiled.Serialization;
public interface IMapReader : IDisposable public interface IMapReader : IDisposable
{ {

View file

@ -1,6 +1,7 @@
using System; using System;
using DotTiled.Model;
namespace DotTiled; namespace DotTiled.Serialization;
public interface ITemplateReader : IDisposable public interface ITemplateReader : IDisposable
{ {

View file

@ -1,6 +1,7 @@
using System; using System;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization;
public interface ITilesetReader : IDisposable public interface ITilesetReader : IDisposable
{ {

View file

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Text.Json; using System.Text.Json;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal static class ExtensionsJsonElement internal static class ExtensionsJsonElement
{ {

View file

@ -1,7 +1,10 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using DotTiled.Model;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
public class TjTemplateReader : ITemplateReader public class TjTemplateReader : ITemplateReader
{ {

View file

@ -5,8 +5,9 @@ using System.IO;
using System.IO.Compression; using System.IO.Compression;
using System.Linq; using System.Linq;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model.Layers;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {

View file

@ -3,8 +3,12 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Numerics; using System.Numerics;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {

View file

@ -3,8 +3,13 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Numerics; using System.Numerics;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {

View file

@ -3,8 +3,11 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Numerics; using System.Numerics;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties.CustomTypes;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {

View file

@ -4,8 +4,13 @@ using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {

View file

@ -3,15 +3,20 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Numerics; using System.Numerics;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Layers.Objects;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {
internal static ObjectLayer ReadObjectLayer( internal static ObjectLayer ReadObjectLayer(
JsonElement element, JsonElement element,
Func<string, Template> externalTemplateResolver, Func<string, Template> externalTemplateResolver,
IReadOnlyCollection<CustomTypeDefinition> customTypeDefinitions) IReadOnlyCollection<CustomTypeDefinition> customTypeDefinitions)
{ {
var id = element.GetRequiredProperty<uint>("id"); var id = element.GetRequiredProperty<uint>("id");
var name = element.GetRequiredProperty<string>("name"); var name = element.GetRequiredProperty<string>("name");
@ -37,7 +42,7 @@ internal partial class Tmj
_ => throw new JsonException($"Unknown draw order '{s}'.") _ => throw new JsonException($"Unknown draw order '{s}'.")
}, DrawOrder.TopDown); }, DrawOrder.TopDown);
var objects = element.GetOptionalPropertyCustom<List<Object>>("objects", e => e.GetValueAsList<Object>(el => ReadObject(el, externalTemplateResolver, customTypeDefinitions)), []); var objects = element.GetOptionalPropertyCustom<List<Model.Layers.Objects.Object>>("objects", e => e.GetValueAsList<Model.Layers.Objects.Object>(el => ReadObject(el, externalTemplateResolver, customTypeDefinitions)), []);
return new ObjectLayer return new ObjectLayer
{ {
@ -62,7 +67,7 @@ internal partial class Tmj
}; };
} }
internal static Object ReadObject( internal static Model.Layers.Objects.Object ReadObject(
JsonElement element, JsonElement element,
Func<string, Template> externalTemplateResolver, Func<string, Template> externalTemplateResolver,
IReadOnlyCollection<CustomTypeDefinition> customTypeDefinitions) IReadOnlyCollection<CustomTypeDefinition> customTypeDefinitions)

View file

@ -3,8 +3,11 @@ using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {

View file

@ -3,8 +3,11 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Numerics; using System.Numerics;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {
@ -16,7 +19,7 @@ internal partial class Tmj
{ {
var type = element.GetRequiredProperty<string>("type"); var type = element.GetRequiredProperty<string>("type");
var tileset = element.GetOptionalPropertyCustom<Tileset?>("tileset", el => ReadTileset(el, externalTilesetResolver, externalTemplateResolver, customTypeDefinitions), null); var tileset = element.GetOptionalPropertyCustom<Tileset?>("tileset", el => ReadTileset(el, externalTilesetResolver, externalTemplateResolver, customTypeDefinitions), null);
var @object = element.GetRequiredPropertyCustom<Object>("object", el => ReadObject(el, externalTemplateResolver, customTypeDefinitions)); var @object = element.GetRequiredPropertyCustom<Model.Layers.Objects.Object>("object", el => ReadObject(el, externalTemplateResolver, customTypeDefinitions));
return new Template return new Template
{ {

View file

@ -3,12 +3,15 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Numerics; using System.Numerics;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {
internal static TileLayer ReadTileLayer( internal static TileLayer ReadTileLayer(
JsonElement element, JsonElement element,
IReadOnlyCollection<CustomTypeDefinition> customTypeDefinitions) IReadOnlyCollection<CustomTypeDefinition> customTypeDefinitions)

View file

@ -5,8 +5,13 @@ using System.IO;
using System.IO.Compression; using System.IO.Compression;
using System.Linq; using System.Linq;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
internal partial class Tmj internal partial class Tmj
{ {

View file

@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text.Json;
namespace DotTiled;
internal partial class Tmj
{
}

View file

@ -3,8 +3,11 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
using DotTiled.Model;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
public class TmjMapReader : IMapReader public class TmjMapReader : IMapReader
{ {

View file

@ -1,7 +1,10 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using DotTiled.Model;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmj;
public class TsjTilesetReader : ITilesetReader public class TsjTilesetReader : ITilesetReader
{ {

View file

@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
using System.Globalization; using System.Globalization;
using System.Xml; using System.Xml;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
internal static class ExtensionsXmlReader internal static class ExtensionsXmlReader
{ {

View file

@ -1,6 +1,7 @@
using System.Xml; using System.Xml;
using DotTiled.Model.Layers;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
internal partial class Tmx internal partial class Tmx
{ {

View file

@ -4,8 +4,9 @@ using System.IO;
using System.IO.Compression; using System.IO.Compression;
using System.Linq; using System.Linq;
using System.Xml; using System.Xml;
using DotTiled.Model.Layers;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
internal partial class Tmx internal partial class Tmx
{ {

View file

@ -3,8 +3,13 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Linq; using System.Linq;
using System.Xml; using System.Xml;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
internal partial class Tmx internal partial class Tmx
{ {

View file

@ -4,8 +4,14 @@ using System.Globalization;
using System.Linq; using System.Linq;
using System.Numerics; using System.Numerics;
using System.Xml; using System.Xml;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Layers.Objects;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
internal partial class Tmx internal partial class Tmx
{ {
@ -39,7 +45,7 @@ internal partial class Tmx
// Elements // Elements
Dictionary<string, IProperty>? properties = null; Dictionary<string, IProperty>? properties = null;
List<Object> objects = []; List<Model.Layers.Objects.Object> objects = [];
reader.ProcessChildren("objectgroup", (r, elementName) => elementName switch reader.ProcessChildren("objectgroup", (r, elementName) => elementName switch
{ {
@ -71,14 +77,14 @@ internal partial class Tmx
}; };
} }
internal static Object ReadObject( internal static Model.Layers.Objects.Object ReadObject(
XmlReader reader, XmlReader reader,
Func<string, Template> externalTemplateResolver, Func<string, Template> externalTemplateResolver,
IReadOnlyCollection<CustomTypeDefinition> customTypeDefinitions) IReadOnlyCollection<CustomTypeDefinition> customTypeDefinitions)
{ {
// Attributes // Attributes
var template = reader.GetOptionalAttribute("template"); var template = reader.GetOptionalAttribute("template");
Object? obj = null; Model.Layers.Objects.Object? obj = null;
if (template is not null) if (template is not null)
obj = externalTemplateResolver(template).Object; obj = externalTemplateResolver(template).Object;
@ -106,7 +112,7 @@ internal partial class Tmx
var visible = reader.GetOptionalAttributeParseable<bool>("visible") ?? visibleDefault; var visible = reader.GetOptionalAttributeParseable<bool>("visible") ?? visibleDefault;
// Elements // Elements
Object? foundObject = null; Model.Layers.Objects.Object? foundObject = null;
int propertiesCounter = 0; int propertiesCounter = 0;
Dictionary<string, IProperty>? properties = propertiesDefault; Dictionary<string, IProperty>? properties = propertiesDefault;
@ -144,7 +150,7 @@ internal partial class Tmx
return OverrideObject(obj, foundObject); return OverrideObject(obj, foundObject);
} }
internal static Object OverrideObject(Object? obj, Object foundObject) internal static Model.Layers.Objects.Object OverrideObject(Model.Layers.Objects.Object? obj, Model.Layers.Objects.Object foundObject)
{ {
if (obj is null) if (obj is null)
return foundObject; return foundObject;
@ -315,7 +321,7 @@ internal partial class Tmx
Tileset? tileset = null; Tileset? tileset = null;
// Should contain exactly one of // Should contain exactly one of
Object? obj = null; Model.Layers.Objects.Object? obj = null;
reader.ProcessChildren("template", (r, elementName) => elementName switch reader.ProcessChildren("template", (r, elementName) => elementName switch
{ {

View file

@ -1,8 +1,11 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Xml; using System.Xml;
using DotTiled.Model;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
internal partial class Tmx internal partial class Tmx
{ {

View file

@ -2,8 +2,13 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Xml; using System.Xml;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
internal partial class Tmx internal partial class Tmx
{ {

View file

@ -3,8 +3,13 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Xml; using System.Xml;
using DotTiled.Model;
using DotTiled.Model.Layers;
using DotTiled.Model.Properties;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
internal partial class Tmx internal partial class Tmx
{ {

View file

@ -1,8 +1,11 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml; using System.Xml;
using DotTiled.Model;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
public class TmxMapReader : IMapReader public class TmxMapReader : IMapReader
{ {

View file

@ -1,8 +1,11 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml; using System.Xml;
using DotTiled.Model;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
public class TsxTilesetReader : ITilesetReader public class TsxTilesetReader : ITilesetReader
{ {

View file

@ -1,8 +1,11 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml; using System.Xml;
using DotTiled.Model;
using DotTiled.Model.Properties.CustomTypes;
using DotTiled.Model.Tilesets;
namespace DotTiled; namespace DotTiled.Serialization.Tmx;
public class TxTemplateReader : ITemplateReader public class TxTemplateReader : ITemplateReader
{ {