// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
using GFramework.Core.Abstractions.Architectures;
namespace GFramework.Core.Architectures;
///
/// 基于 GameContext 的默认上下文提供者。
/// 默认只面向当前活动上下文工作,而不是维护多个并存的全局上下文。
///
public sealed class GameContextProvider : IArchitectureContextProvider
{
///
/// 获取当前的架构上下文。
///
/// 架构上下文实例
/// 当前没有已绑定的活动架构上下文时抛出。
public IArchitectureContext GetContext()
{
return GameContext.GetFirstArchitectureContext();
}
///
/// 尝试获取指定类型的架构上下文。
/// 若当前活动上下文本身兼容 ,则无需显式类型别名也会返回成功。
///
/// 架构上下文类型
/// 输出的上下文实例
/// 如果成功获取则返回true,否则返回false
public bool TryGetContext(out T? context) where T : class, IArchitectureContext
{
return GameContext.TryGet(out context);
}
}