using GFramework.Core.Abstractions.system;
namespace GFramework.Game.Abstractions.assets;
///
/// 资源目录系统接口,用于管理场景和资源的获取与查询
///
public interface IAssetCatalogSystem : ISystem
{
///
/// 根据指定的键获取场景单元标识符
///
/// 用于查找场景单元的键值
/// 返回与指定键对应的场景单元标识符
AssetCatalog.SceneUnitId GetSceneUnit(string key);
///
/// 根据指定的键获取场景页面标识符
///
/// 用于查找场景页面的键值
/// 返回与指定键对应的场景页面标识符
AssetCatalog.ScenePageId GetScenePage(string key);
///
/// 根据指定的键获取资源ID
///
/// 用于查找资源的键值
/// 返回对应的资源ID,如果未找到则返回默认值
AssetCatalog.AssetId GetAsset(string key);
///
/// 注册场景单元到资产目录中
///
/// 场景单元的唯一标识键
/// 场景单元资源的路径
public void RegisterSceneUnit(string key, string path);
///
/// 通过资产目录映射注册场景单元
///
/// 包含场景单元信息的资产目录映射对象
public void RegisterSceneUnit(AssetCatalog.AssetCatalogMapping mapping);
///
/// 注册场景页面模板
///
/// 场景页面的唯一标识键
/// 场景页面资源路径
void RegisterScenePage(string key, string path);
///
/// 通过资产目录映射注册场景页面
///
/// 包含场景页面信息的资产目录映射对象
void RegisterScenePage(AssetCatalog.AssetCatalogMapping mapping);
///
/// 注册普通资产资源到资产目录中
///
/// 资产的唯一标识键值
/// 资产资源的路径
void RegisterAsset(string key, string path);
///
/// 根据映射配置注册普通资产资源到资产目录中
///
/// 包含键值和路径映射关系的配置对象
void RegisterAsset(AssetCatalog.AssetCatalogMapping mapping);
///
/// 检查是否存在指定键的场景单元
///
/// 用于查找场景单元的键值
/// 存在返回true,否则返回false
bool HasSceneUnit(string key);
///
/// 检查是否存在指定键的场景页面
///
/// 用于查找场景页面的键值
/// 存在返回true,否则返回false
bool HasScenePage(string key);
///
/// 检查是否存在指定键的资源
///
/// 用于查找资源的键值
/// 存在返回true,否则返回false
bool HasAsset(string key);
}