GFramework/GFramework.Game/assets/IAssetCatalogSystem.cs
GeWuYou 2db09e72d7 refactor(assets): 重构资产目录系统以支持多种资源类型
- 将 AbstractAssetCatalogSystem 从 GFramework.Godot 移动到 GFramework.Game
- 引入 GameUnitId、TemplateId 和 AssetId 替代原有的 SceneId 和 ResourceId
- 更新注册与查询接口以区分不同类型资源
- 修改相关系统类以适配新的资产标识符类型
- 调整项目引用依赖关系,确保正确的程序集链接
- 扩展资源工厂系统以处理新增的资源类别
- [no tag]
2025-12-20 13:45:49 +08:00

92 lines
3.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using GFramework.Core.system;
namespace GFramework.Game.assets;
/// <summary>
/// 资源目录系统接口,用于管理场景和资源的获取与查询
/// </summary>
public interface IAssetCatalogSystem : ISystem
{
/// <summary>
/// 根据指定的键获取游戏单位ID
/// </summary>
/// <param name="key">用于查找游戏单位的键值</param>
/// <returns>返回对应的游戏单位ID如果未找到则返回默认值</returns>
AssetCatalog.GameUnitId GetGameUnit(string key);
/// <summary>
/// 根据指定的键获取模板ID
/// </summary>
/// <param name="key">用于查找模板的键值</param>
/// <returns>返回对应的模板ID如果未找到则返回默认值</returns>
AssetCatalog.TemplateId GetTemplate(string key);
/// <summary>
/// 根据指定的键获取资源ID
/// </summary>
/// <param name="key">用于查找资源的键值</param>
/// <returns>返回对应的资源ID如果未找到则返回默认值</returns>
AssetCatalog.AssetId GetAsset(string key);
/// <summary>
/// 注册游戏单位资源到资产目录中
/// </summary>
/// <param name="key">游戏单位的唯一标识键值</param>
/// <param name="path">游戏单位资源的路径</param>
void RegisterGameUnit(string key, string path);
/// <summary>
/// 根据映射配置注册游戏单位资源到资产目录中
/// </summary>
/// <param name="mapping">包含键值和路径映射关系的配置对象</param>
void RegisterGameUnit(AssetCatalog.AssetCatalogMapping mapping);
/// <summary>
/// 注册模板资源到资产目录中
/// </summary>
/// <param name="key">模板的唯一标识键值</param>
/// <param name="path">模板资源的路径</param>
void RegisterTemplate(string key, string path);
/// <summary>
/// 根据映射配置注册模板资源到资产目录中
/// </summary>
/// <param name="mapping">包含键值和路径映射关系的配置对象</param>
void RegisterTemplate(AssetCatalog.AssetCatalogMapping mapping);
/// <summary>
/// 注册普通资产资源到资产目录中
/// </summary>
/// <param name="key">资产的唯一标识键值</param>
/// <param name="path">资产资源的路径</param>
void RegisterAsset(string key, string path);
/// <summary>
/// 根据映射配置注册普通资产资源到资产目录中
/// </summary>
/// <param name="mapping">包含键值和路径映射关系的配置对象</param>
void RegisterAsset(AssetCatalog.AssetCatalogMapping mapping);
/// <summary>
/// 检查是否存在指定键的游戏单位
/// </summary>
/// <param name="key">用于查找游戏单位的键值</param>
/// <returns>存在返回true否则返回false</returns>
bool HasGameUnit(string key);
/// <summary>
/// 检查是否存在指定键的模板
/// </summary>
/// <param name="key">用于查找模板的键值</param>
/// <returns>存在返回true否则返回false</returns>
bool HasTemplate(string key);
/// <summary>
/// 检查是否存在指定键的资源
/// </summary>
/// <param name="key">用于查找资源的键值</param>
/// <returns>存在返回true否则返回false</returns>
bool HasAsset(string key);
}