Files
aibis-dream/Assets/Scripts/MiniGame/BlockPuzzle/Interface/IBlockShapeFactory.cs
T
2025-11-27 18:14:24 +08:00

58 lines
1.7 KiB
C#

namespace AibisDream
{
/// <summary>
/// 形状工厂接口
/// 负责创建和管理形状对象
/// </summary>
public interface IBlockShapeFactory
{
/// <summary>
/// 创建指定ID的形状
/// </summary>
/// <param name="shapeId">形状ID</param>
/// <returns>形状对象,如果ID不存在则返回null</returns>
IBlockShape CreateShape(int shapeId);
/// <summary>
/// 创建指定名称的形状
/// </summary>
/// <param name="shapeName">形状名称</param>
/// <returns>形状对象,如果名称不存在则返回null</returns>
IBlockShape CreateShape(string shapeName);
/// <summary>
/// 创建随机形状
/// </summary>
/// <returns>随机形状对象</returns>
IBlockShape CreateRandomShape();
/// <summary>
/// 获取所有可用的形状ID列表
/// </summary>
/// <returns>形状ID数组</returns>
int[] GetAllShapeIds();
/// <summary>
/// 获取所有可用的形状名称列表
/// </summary>
/// <returns>形状名称数组</returns>
string[] GetAllShapeNames();
/// <summary>
/// 注册新形状
/// </summary>
/// <param name="shapeId">形状ID</param>
/// <param name="shapeName">形状名称</param>
/// <param name="pattern">形状模式(二维数组)</param>
void RegisterShape(int shapeId, string shapeName, int[,] pattern);
/// <summary>
/// 检查形状ID是否存在
/// </summary>
/// <param name="shapeId">形状ID</param>
/// <returns>是否存在</returns>
bool HasShape(int shapeId);
}
}