Make MappingDataNode use string keys (#36111)

* MappingDataNode string keys

* a

* poke
This commit is contained in:
Leon Friedrich
2025-04-18 19:28:22 +10:00
committed by GitHub
parent 644cce2b9f
commit e4f3d19094
6 changed files with 19 additions and 34 deletions

View File

@@ -25,7 +25,7 @@ public sealed partial class TileAtmosCollectionSerializer : ITypeSerializer<Dict
SerializationHookContext hookCtx, ISerializationContext? context = null,
ISerializationManager.InstantiationDelegate<Dictionary<Vector2i, TileAtmosphere>>? instanceProvider = null)
{
node.TryGetValue(new ValueDataNode("version"), out var versionNode);
node.TryGetValue("version", out var versionNode);
var version = ((ValueDataNode?) versionNode)?.AsInt() ?? 1;
Dictionary<Vector2i, TileAtmosphere> tiles = new();
@@ -59,7 +59,7 @@ public sealed partial class TileAtmosCollectionSerializer : ITypeSerializer<Dict
var dataNode = (MappingDataNode) node["data"];
var chunkSize = serializationManager.Read<int>(dataNode["chunkSize"], hookCtx, context);
dataNode.TryGetValue(new ValueDataNode("uniqueMixes"), out var mixNode);
dataNode.TryGet("uniqueMixes", out var mixNode);
var unique = mixNode == null ? null : serializationManager.Read<List<GasMixture>?>(mixNode, hookCtx, context);
if (unique != null)
@@ -67,7 +67,7 @@ public sealed partial class TileAtmosCollectionSerializer : ITypeSerializer<Dict
var tileNode = (MappingDataNode) dataNode["tiles"];
foreach (var (chunkNode, valueNode) in tileNode)
{
var chunkOrigin = serializationManager.Read<Vector2i>(chunkNode, hookCtx, context);
var chunkOrigin = serializationManager.Read<Vector2i>(tileNode.GetKeyNode(chunkNode), hookCtx, context);
var chunk = serializationManager.Read<TileAtmosChunk>(valueNode, hookCtx, context);
foreach (var (mix, data) in chunk.Data)