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); /// /// 通过资产目录映射注册场景单元 /// /// 包含场景单元信息的资产目录映射对象 /// 当映射ID不是SceneUnitId类型或键已存在时抛出异常 public void RegisterSceneUnit(AssetCatalog.AssetCatalogMapping mapping); /// /// 注册场景页面模板 /// /// 场景页面的唯一标识键 /// 场景页面资源路径 /// 当键已存在时抛出异常 void RegisterScenePage(string key, string path); /// /// 通过资产目录映射注册场景页面 /// /// 包含场景页面信息的资产目录映射对象 /// 当映射ID不是ScenePageId类型或键已存在时抛出异常 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); }