GFramework/GFramework.Godot/data/IResourceRepository.cs
GeWuYou f8a1c99b99 refactor(GodotResourceRepository): 重构资源仓库路径加载功能
- 添加ILogger用于日志记录替换GD.PushWarning
- 修改GetAll方法返回ToArray()副本而非直接Values引用
- 分离路径加载方法为非递归和递归两个独立接口
- 新增LoadFromPath和LoadFromPathRecursive的重载方法
- 提取内部处理逻辑到ProcessEntry私有方法
- 优化目录遍历逻辑并改进错误处理机制
- 添加重复键检测和资源加载失败的日志记录
2026-02-23 22:33:29 +08:00

50 lines
1.9 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.

// Copyright (c) 2026 GeWuYou
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using GFramework.Game.Abstractions.data;
using Godot;
namespace GFramework.Godot.data;
/// <summary>
/// 定义资源仓储接口专门用于管理Godot资源的加载和存储
/// 继承自通用仓储接口,添加了从路径加载资源的功能
/// </summary>
/// <typeparam name="TKey">资源键的类型</typeparam>
/// <typeparam name="TResource">资源类型必须继承自Godot.Resource</typeparam>
public interface IResourceRepository<in TKey, TResource> : IRepository<TKey, TResource> where TResource : Resource
{
/// <summary>
/// 从指定路径集合加载资源
/// </summary>
/// <param name="paths">资源文件路径集合</param>
void LoadFromPath(IEnumerable<string> paths);
/// <summary>
/// 从指定路径数组加载资源
/// </summary>
/// <param name="paths">资源文件路径数组</param>
void LoadFromPath(params string[] paths);
/// <summary>
/// 递归从指定路径集合加载资源
/// </summary>
/// <param name="paths">资源文件路径集合</param>
void LoadFromPathRecursive(IEnumerable<string> paths);
/// <summary>
/// 递归从指定路径数组加载资源
/// </summary>
/// <param name="paths">资源文件路径数组</param>
void LoadFromPathRecursive(params string[] paths);
}