Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / mapEditorConfigObject / MapEditorConfigObjectPanel.cs
@小李xl 小李xl on 17 Jul 1 KB 地牢编辑器移植完成
using System.Linq;
using Config;
using Godot;

namespace UI.MapEditorConfigObject;

public partial class MapEditorConfigObjectPanel : MapEditorConfigObject
{
    private UiGrid<CellButton, ExcelConfig.EditorObject> _grid;
    private bool _initData = false;
    private long _gridCoroutineId = -1;
    
    public override void OnCreateUi()
    {
        _grid = CreateUiGrid<CellButton, ExcelConfig.EditorObject, ItemCell>(S_CellButton);
        _grid.SetAutoColumns(true);
        _grid.SetHorizontalExpand(true);
        
        //搜索按钮
        S_SearchButton.Instance.Pressed += OnSearchButtonClicked;
    }

    public override void OnShowUi()
    {
        if (!_initData)
        {
            _initData = true;
            OnSearchButtonClicked();
        }
    }

    public override void OnDestroyUi()
    {
        
    }

    /// <summary>
    /// 获取选中的配置
    /// </summary>
    public ExcelConfig.EditorObject GetSelectConfig()
    {
        return _grid.SelectData;
    }
    
    //搜索按钮点击
    private void OnSearchButtonClicked()
    {
        if (_gridCoroutineId != -1)
        {
            StopCoroutine(_gridCoroutineId);
        }
        
        var text = S_SearchInput.Instance.Text;
        if (string.IsNullOrEmpty(text))
        {
            _gridCoroutineId = StartCoroutine(_grid.SetDataListCoroutine(ExcelConfig.EditorObject_List));
        }
        else
        {
            var enumerable = ExcelConfig.EditorObject_List.Where(item => item.GetRealName().Contains(text));
            _gridCoroutineId = StartCoroutine(_grid.SetDataListCoroutine(enumerable.ToArray()));
        }
    }

}