58 lines
1.7 KiB
C#
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);
|
|
}
|
|
}
|
|
|