mirror of
https://github.com/dcronqvist/DotTiled.git
synced 2025-02-05 08:52:50 +02:00
Use proper list assertion and add optional to some Data properties
This commit is contained in:
parent
4fd887e7c8
commit
df075eed8d
4 changed files with 12 additions and 20 deletions
|
@ -18,13 +18,7 @@ public static partial class DotTiledAssert
|
|||
// Data
|
||||
AssertEqual(expected.GlobalTileIDs, actual.GlobalTileIDs, nameof(Data.GlobalTileIDs));
|
||||
AssertEqual(expected.FlippingFlags, actual.FlippingFlags, nameof(Data.FlippingFlags));
|
||||
|
||||
if (expected.Chunks.HasValue)
|
||||
{
|
||||
AssertEqual(expected.Chunks.Value.Length, actual.Chunks.Value.Length, "Chunks.Length");
|
||||
for (var i = 0; i < expected.Chunks.Value.Length; i++)
|
||||
AssertChunk(expected.Chunks.Value[i], actual.Chunks.Value[i]);
|
||||
}
|
||||
AssertOptionalsEqual(expected.Chunks, actual.Chunks, nameof(Data.Chunks), (a, b) => AssertListOrdered(a, b, nameof(Chunk), AssertChunk));
|
||||
}
|
||||
|
||||
private static void AssertChunk(Chunk expected, Chunk actual)
|
||||
|
|
|
@ -130,12 +130,12 @@ public class Data
|
|||
/// To get an actual tile ID, you map it to a local tile ID using the correct tileset. Please refer to
|
||||
/// <see href="https://doc.mapeditor.org/en/stable/reference/global-tile-ids/#mapping-a-gid-to-a-local-tile-id">the documentation on how to do this</see>.
|
||||
/// </summary>
|
||||
public uint[] GlobalTileIDs { get; set; }
|
||||
public Optional<uint[]> GlobalTileIDs { get; set; } = Optional<uint[]>.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// The parsed flipping flags for each tile in the layer. Appear in the same order as the tiles in the layer in <see cref="GlobalTileIDs"/>.
|
||||
/// </summary>
|
||||
public FlippingFlags[] FlippingFlags { get; set; }
|
||||
public Optional<FlippingFlags[]> FlippingFlags { get; set; } = Optional<FlippingFlags[]>.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// If the map is infinite, it will instead contain a list of chunks.
|
||||
|
|
|
@ -13,9 +13,7 @@ public abstract partial class TmjReaderBase
|
|||
{
|
||||
Chunks = chunks,
|
||||
Compression = compression,
|
||||
Encoding = encoding,
|
||||
FlippingFlags = null,
|
||||
GlobalTileIDs = null
|
||||
Encoding = encoding
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -34,8 +32,8 @@ public abstract partial class TmjReaderBase
|
|||
Y = y,
|
||||
Width = width,
|
||||
Height = height,
|
||||
GlobalTileIDs = data.GlobalTileIDs!,
|
||||
FlippingFlags = data.FlippingFlags!
|
||||
GlobalTileIDs = data.GlobalTileIDs,
|
||||
FlippingFlags = data.FlippingFlags
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -46,7 +44,7 @@ public abstract partial class TmjReaderBase
|
|||
// Array of uint
|
||||
var data = element.GetValueAsList<uint>(e => e.GetValueAs<uint>()).ToArray();
|
||||
var (globalTileIDs, flippingFlags) = Helpers.ReadAndClearFlippingFlagsFromGIDs(data);
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = globalTileIDs, FlippingFlags = flippingFlags, Chunks = null };
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = globalTileIDs, FlippingFlags = flippingFlags };
|
||||
}
|
||||
else if (encoding == DataEncoding.Base64)
|
||||
{
|
||||
|
@ -56,7 +54,7 @@ public abstract partial class TmjReaderBase
|
|||
{
|
||||
var data = Helpers.ReadBytesAsInt32Array(base64Data);
|
||||
var (globalTileIDs, flippingFlags) = Helpers.ReadAndClearFlippingFlagsFromGIDs(data);
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = globalTileIDs, FlippingFlags = flippingFlags, Chunks = null };
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = globalTileIDs, FlippingFlags = flippingFlags };
|
||||
}
|
||||
|
||||
using var stream = new MemoryStream(base64Data);
|
||||
|
@ -70,7 +68,7 @@ public abstract partial class TmjReaderBase
|
|||
|
||||
{
|
||||
var (globalTileIDs, flippingFlags) = Helpers.ReadAndClearFlippingFlagsFromGIDs(decompressed);
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = globalTileIDs, FlippingFlags = flippingFlags, Chunks = null };
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = globalTileIDs, FlippingFlags = flippingFlags };
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ public abstract partial class TmxReaderBase
|
|||
var chunks = _reader
|
||||
.ReadList("data", "chunk", (r) => ReadChunk(encoding, compression))
|
||||
.ToArray();
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = null, Chunks = chunks };
|
||||
return new Data { Encoding = encoding, Compression = compression, Chunks = chunks };
|
||||
}
|
||||
|
||||
var usesTileChildrenInsteadOfRawData = !encoding.HasValue && !compression.HasValue;
|
||||
|
@ -38,12 +38,12 @@ public abstract partial class TmxReaderBase
|
|||
{
|
||||
var tileChildrenGlobalTileIDsWithFlippingFlags = ReadTileChildrenInWrapper("data", _reader);
|
||||
var (tileChildrenGlobalTileIDs, tileChildrenFlippingFlags) = ReadAndClearFlippingFlagsFromGIDs(tileChildrenGlobalTileIDsWithFlippingFlags);
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = tileChildrenGlobalTileIDs, FlippingFlags = tileChildrenFlippingFlags, Chunks = null };
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = tileChildrenGlobalTileIDs, FlippingFlags = tileChildrenFlippingFlags };
|
||||
}
|
||||
|
||||
var rawDataGlobalTileIDsWithFlippingFlags = ReadRawData(_reader, encoding, compression);
|
||||
var (rawDataGlobalTileIDs, rawDataFlippingFlags) = ReadAndClearFlippingFlagsFromGIDs(rawDataGlobalTileIDsWithFlippingFlags);
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = rawDataGlobalTileIDs, FlippingFlags = rawDataFlippingFlags, Chunks = null };
|
||||
return new Data { Encoding = encoding, Compression = compression, GlobalTileIDs = rawDataGlobalTileIDs, FlippingFlags = rawDataFlippingFlags };
|
||||
}
|
||||
|
||||
internal static (uint[] GlobalTileIDs, FlippingFlags[] FlippingFlags) ReadAndClearFlippingFlagsFromGIDs(uint[] globalTileIDs)
|
||||
|
|
Loading…
Add table
Reference in a new issue