// 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;
///
/// 定义资源仓储接口,专门用于管理Godot资源的加载和存储
/// 继承自通用仓储接口,添加了从路径加载资源的功能
///
/// 资源键的类型
/// 资源类型,必须继承自Godot.Resource
public interface IResourceRepository : IRepository where TResource : Resource
{
///
/// 从指定路径加载资源到仓储中
///
/// 资源文件的路径集合
/// 是否递归加载子目录中的资源
void LoadFromPath(IEnumerable paths, bool recursive = false);
///
/// 从指定路径数组加载资源到仓储中
/// 提供便捷的参数数组重载方法
///
/// 是否递归加载子目录中的资源
/// 资源文件路径的参数数组
void LoadFromPath(bool recursive = false, params string[] paths);
}