using GFramework.Game.Abstractions.Enums;
namespace GFramework.Game.Abstractions.UI;
///
/// UI切换处理器接口,定义UI切换扩展点的处理逻辑
///
public interface IUiTransitionHandler
{
///
/// 处理器优先级,数值越小越先执行
///
int Priority { get; }
///
/// 处理器适用的阶段,默认为所有阶段
/// 可以使用Flags枚举指定多个阶段
///
UiTransitionPhases Phases { get; }
///
/// 判断是否应该处理当前事件
/// 可以根据事件类型、UI key等信息进行条件过滤
///
/// UI切换事件
/// 当前阶段
/// 是否处理
bool ShouldHandle(UiTransitionEvent @event, UiTransitionPhases phases);
///
/// 处理UI切换事件
///
/// UI切换事件
/// 取消令牌
/// 异步任务
Task HandleAsync(UiTransitionEvent @event, CancellationToken cancellationToken);
}