Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / tileSetEditorCombination / right / TileCell.cs
using Godot;

namespace UI.TileSetEditorCombination;

public class TileCell : UiCell<TileSetEditorCombination.CellButton, ImportCombinationData>
{
    public override void OnInit()
    {
        CellNode.L_SelectTexture.Instance.Visible = false;
    }
    
    public override void OnSetData(ImportCombinationData data)
    {
        CellNode.L_CellName.Instance.Text = data.CombinationInfo.Name;
        CellNode.L_PreviewImage.Instance.Texture = data.PreviewTexture;
    }

    public override void OnDisable()
    {
        if (Data.PreviewTexture != null)
        {
            Data.PreviewTexture.Dispose();
            Data.PreviewTexture = null;
        }
    }

    public override void OnDestroy()
    {
        if (Data.PreviewTexture != null)
        {
            Data.PreviewTexture.Dispose();
            Data.PreviewTexture = null;
        }
    }

    public override void OnDoubleClick()
    {
        //双击移除Cell数据
        EditorWindowManager.ShowEditCombination(
            Data.CombinationInfo.Name,
            CellNode.UiPanel.EditorPanel.BgColor,
            Data.PreviewTexture,
            (newName) => //修改
            {
                Data.CombinationInfo.Name = newName;
                EventManager.EmitEvent(EventEnum.OnUpdateCombination, Data);
            },
            () => //删除
            {
                EventManager.EmitEvent(EventEnum.OnRemoveCombination, Data);
            }
        );
    }

    public override void OnSelect()
    {
        CellNode.L_SelectTexture.Instance.Visible = true;
    }

    public override void OnUnSelect()
    {
        CellNode.L_SelectTexture.Instance.Visible = false;
    }
}