Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / tileSetEditorCombination / right / TileSelected.cs
@小李xl 小李xl on 18 Dec 2023 1 KB 导入组合图块, 开发中
using Godot;

namespace UI.TileSetEditorCombination;

public partial class TileSelected : VBoxContainer, IUiNodeScript
{
    private TileSetEditorCombination.RightBg _rightBg;
    private UiGrid<TileSetEditorCombination.CellButton, ImportCombinationData> _grid;
    
    public void SetUiNode(IUiNode uiNode)
    {
        _rightBg = (TileSetEditorCombination.RightBg)uiNode;

        _grid = new UiGrid<TileSetEditorCombination.CellButton, ImportCombinationData>(_rightBg.L_ScrollContainer.L_CellButton, typeof(TileCell));
        _grid.SetCellOffset(new Vector2I(5, 5));
        _grid.SetAutoColumns(true);
        _grid.SetHorizontalExpand(true);
        
        _rightBg.UiPanel.AddEventListener(EventEnum.OnImportCombination, OnImportCombination);
        // _rightBg.UiPanel.AddEventListener(EventEnum.OnRemoveTileCell, OnRemoveCell);
    }

    /// <summary>
    /// 导入组合图块
    /// </summary>
    private void OnImportCombination(object obj)
    {
        if (obj is ImportCombinationData data)
        {
            _grid.Add(data);
            _grid.Sort();
        }
    }
    
    /// <summary>
    /// 移除选中的Cell图块
    /// </summary>
    private void OnRemoveCell(object obj)
    {
        // if (obj is ImportCombinationData data)
        // {
        //     var uiCell = _grid.Find(c => c.Data == data);
        //     if (uiCell != null)
        //     {
        //         _grid.RemoveByIndex(uiCell.Index);
        //     }
        // }
    }

    public void OnDestroy()
    {
        _grid.Destroy();
    }
    

    /// <summary>
    /// 改变TileSet纹理
    /// </summary>
    public void OnChangeTileSetTexture(Texture2D texture)
    {
        _grid.RemoveAll();
    }
}