Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / serialize / tileSet / TileCombinationInfo.cs
@小李xl 小李xl on 6 Jan 2024 1 KB 读取TileSet数据, 开发中

using System.Text.Json.Serialization;

/// <summary>
/// 组合图块数据
/// </summary>
public class TileCombinationInfo : IClone<TileCombinationInfo>
{
    /// <summary>
    /// 组合唯一Id
    /// </summary>
    [JsonInclude]
    public string Id;
    /// <summary>
    /// 组合名称
    /// </summary>
    [JsonInclude]
    public string Name;
    /// <summary>
    /// 组合图块数据, 在纹理中的坐标, 单位: 像素
    /// </summary>
    [JsonInclude]
    public SerializeVector2[] Cells;
    /// <summary>
    /// 组合图块数据, 显示位置, 单位: 像素
    /// </summary>
    [JsonInclude]
    public SerializeVector2[] Positions;

    public TileCombinationInfo Clone()
    {
        var combinationInfo = new TileCombinationInfo();
        combinationInfo.Id = Id;
        combinationInfo.Name = Name;
        if (Cells != null)
        {
            combinationInfo.Cells = new SerializeVector2[Cells.Length];
            for (int i = 0; i < Cells.Length; i++)
            {
                combinationInfo.Cells[i] = Cells[i].Clone();
            }
        }

        if (Positions != null)
        {
            combinationInfo.Positions = new SerializeVector2[Positions.Length];
            for (int i = 0; i < Positions.Length; i++)
            {
                combinationInfo.Positions[i] = Positions[i].Clone();
            }
        }
        return combinationInfo;
    }
}