mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 将 AssetCatalog.cs、IAssetCatalogSystem.cs、IResourceFactorySystem.cs 和 ResourceFactory.cs 从 GFramework.Game 移至 GFramework.Game.Abstractions - 在 GFramework.Game 项目中添加对 GFramework.Game.Abstractions 的引用 - 更新 AbstractAssetCatalogSystem.cs 以使用新的命名空间引用 - 在 GFramework.Godot 项目中添加对 GFramework.Game.Abstractions 的引用 - 更新 ResourceLoadSystem.cs 以使用新的命名空间并修正命名空间声明 - 在解决方案文件中注册新的 GFramework.Game.Abstractions 项目 - 为 GFramework.Game.Abstractions 项目添加 Directory.Build.props 配置文件 - 在主项目文件中排除新抽象模块的编译和资源文件以避免重复包含
97 lines
3.8 KiB
C#
97 lines
3.8 KiB
C#
using GFramework.Core.Abstractions.system;
|
||
|
||
namespace GFramework.Game.Abstractions.assets;
|
||
|
||
/// <summary>
|
||
/// 资源目录系统接口,用于管理场景和资源的获取与查询
|
||
/// </summary>
|
||
public interface IAssetCatalogSystem : ISystem
|
||
{
|
||
/// <summary>
|
||
/// 根据指定的键获取场景单元标识符
|
||
/// </summary>
|
||
/// <param name="key">用于查找场景单元的键值</param>
|
||
/// <returns>返回与指定键对应的场景单元标识符</returns>
|
||
AssetCatalog.SceneUnitId GetSceneUnit(string key);
|
||
|
||
/// <summary>
|
||
/// 根据指定的键获取场景页面标识符
|
||
/// </summary>
|
||
/// <param name="key">用于查找场景页面的键值</param>
|
||
/// <returns>返回与指定键对应的场景页面标识符</returns>
|
||
AssetCatalog.ScenePageId GetScenePage(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>
|
||
/// <exception cref="InvalidOperationException">当指定的键已存在时抛出异常</exception>
|
||
public void RegisterSceneUnit(string key, string path);
|
||
|
||
/// <summary>
|
||
/// 通过资产目录映射注册场景单元
|
||
/// </summary>
|
||
/// <param name="mapping">包含场景单元信息的资产目录映射对象</param>
|
||
/// <exception cref="InvalidOperationException">当映射ID不是SceneUnitId类型或键已存在时抛出异常</exception>
|
||
public void RegisterSceneUnit(AssetCatalog.AssetCatalogMapping mapping);
|
||
|
||
/// <summary>
|
||
/// 注册场景页面模板
|
||
/// </summary>
|
||
/// <param name="key">场景页面的唯一标识键</param>
|
||
/// <param name="path">场景页面资源路径</param>
|
||
/// <exception cref="InvalidOperationException">当键已存在时抛出异常</exception>
|
||
void RegisterScenePage(string key, string path);
|
||
|
||
/// <summary>
|
||
/// 通过资产目录映射注册场景页面
|
||
/// </summary>
|
||
/// <param name="mapping">包含场景页面信息的资产目录映射对象</param>
|
||
/// <exception cref="InvalidOperationException">当映射ID不是ScenePageId类型或键已存在时抛出异常</exception>
|
||
void RegisterScenePage(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 HasSceneUnit(string key);
|
||
|
||
|
||
/// <summary>
|
||
/// 检查是否存在指定键的场景页面
|
||
/// </summary>
|
||
/// <param name="key">用于查找场景页面的键值</param>
|
||
/// <returns>存在返回true,否则返回false</returns>
|
||
bool HasScenePage(string key);
|
||
|
||
/// <summary>
|
||
/// 检查是否存在指定键的资源
|
||
/// </summary>
|
||
/// <param name="key">用于查找资源的键值</param>
|
||
/// <returns>存在返回true,否则返回false</returns>
|
||
bool HasAsset(string key);
|
||
} |