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);
}
}