mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
feat(asset): 添加场景和资源注册方法
- 新增 RegisterScene 方法支持通过映射对象注册场景 - 新增 RegisterResource 方法支持通过映射对象注册资源 - 添加对重复键的检查并抛出相应异常 - 实现对无效标识符类型的验证逻辑
This commit is contained in:
parent
b67c922b09
commit
8123683e6e
@ -1,4 +1,4 @@
|
||||
using GFramework.Core.system;
|
||||
using GFramework.Core.system;
|
||||
|
||||
namespace GFramework.Core.Godot.system;
|
||||
|
||||
@ -39,6 +39,20 @@ public abstract class AbstractAssetCatalogSystem : AbstractSystem, IAssetCatalog
|
||||
_scenes[key] = new AssetCatalog.SceneId(path);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 注册场景资源
|
||||
/// </summary>
|
||||
/// <param name="mapping">包含键和场景标识符的映射对象</param>
|
||||
/// <exception cref="InvalidOperationException">当场景键已存在时抛出异常</exception>
|
||||
public void RegisterScene(AssetCatalog.AssetCatalogMapping mapping)
|
||||
{
|
||||
if (mapping.Id is not AssetCatalog.SceneId sceneId)
|
||||
throw new InvalidOperationException("Mapping ID is not a SceneId");
|
||||
|
||||
if (!_scenes.TryAdd(mapping.Key, sceneId))
|
||||
throw new InvalidOperationException($"Scene key duplicated: {mapping.Key}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 注册普通资源
|
||||
/// </summary>
|
||||
@ -53,6 +67,20 @@ public abstract class AbstractAssetCatalogSystem : AbstractSystem, IAssetCatalog
|
||||
_resources[key] = new AssetCatalog.ResourceId(path);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 注册普通资源
|
||||
/// </summary>
|
||||
/// <param name="mapping">包含键和资源标识符的映射对象</param>
|
||||
/// <exception cref="InvalidOperationException">当资源键已存在时抛出异常</exception>
|
||||
public void RegisterResource(AssetCatalog.AssetCatalogMapping mapping)
|
||||
{
|
||||
if (mapping.Id is not AssetCatalog.ResourceId resourceId)
|
||||
throw new InvalidOperationException("Mapping ID is not a ResourceId");
|
||||
|
||||
if (!_resources.TryAdd(mapping.Key, resourceId))
|
||||
throw new InvalidOperationException($"Resource key duplicated: {mapping.Key}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Query(对外)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user