Code/Tileset/TilesetComponent.Upgraders.cs
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text.Json;
using System.Text.Json.Nodes;
using Sandbox;

namespace SpriteTools;

public partial class TilesetComponent
{
    public override int ComponentVersion => 1;

    [JsonUpgrader(typeof(TilesetComponent), 1)]
    static void Upgrader_v1(JsonObject json)
    {
        if (json.ContainsKey("LayerDistance"))
        {
            var distance = json["LayerDistance"].GetValue<float>();

            if (json.ContainsKey("Layers"))
            {
                var layerList = json["Layers"].AsArray();
                for (int i = 0; i < layerList.Count; i++)
                {
                    var layer = layerList[i];
                    if (layer is null) continue;
                    var layerObj = layer.AsObject();
                    layerObj["Height"] = distance * (layerList.Count - i);
                }
            }
        }
    }
}