using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
///
/// UI面板
///
public abstract class ModuleUIPanel : MonoBehaviour {
/// 绑定的页面
public ModuleUIPage ModuleUIPage;
/// 可选初始化
protected virtual void Awake() { }
/// 核心模块
protected virtual ModuleCore ModuleCore => ModuleCore.I;
public abstract VisualElement Element { get; }
}
///
/// UI项
///
public abstract class UIItem where T : UIItem {
/// 选择事件
public static event Action OnSelect;
/// 触发事件
public static void Select(Data data) => OnSelect?.Invoke(data);
/// 绑定的数据
public readonly Data value;
/// 绑定的元素
public readonly VisualElement element;
/// 基础实例
public UIItem(Data value, VisualElement element) {
this.value = value;
this.element = element;
OnSelect += UnitUIPanelItem_OnSelect;
}
/// 触发选择事件
public virtual void Select() => OnSelect?.Invoke(value);
/// 侦听选择事件
public virtual void UnitUIPanelItem_OnSelect(Data obj) {
if (value.Equals(obj)) { SelectState(); }
else { DefaultState(); }
}
/// 默认状态
public virtual void DefaultState() { }
/// 选中状态
public virtual void SelectState() { }
/// 释放
public virtual void Release() => OnSelect -= UnitUIPanelItem_OnSelect;
}