feat(重构): 重构棋盘和棋子的逻辑

- 重构了 ChessBoard 和 ChessPiece 类的逻辑
- 添加了新版本的 ChineseChess 库
- 删除了旧版本的 VirtualBoard 和 VirtualPiece 类
- 更新了相关的场景和脚本
This commit is contained in:
ZZY
2024-11-22 20:01:40 +08:00
parent 8ee9732a6f
commit 9c619784af
28 changed files with 1068 additions and 455 deletions

32
Scripts/Src/IBoard.cs Normal file
View File

@ -0,0 +1,32 @@
using System;
using Vector2I = Vector.Vector2I;
public interface IBoard {
public int Rows { get; }
public int Cols { get; }
public class SetPieceEventArgs : EventArgs {
public IPiece OldPiece { get; set; }
public IPiece NewPiece { get; set; }
public Vector2I Pos { get; set; }
}
public class MoveEventArgs : EventArgs {
public IPiece Piece { get; set; }
public Vector2I From { get; set; }
public Vector2I To { get; set; }
}
event EventHandler<IPiece> OnInsert;
event EventHandler<IPiece> OnRemove;
event EventHandler<MoveEventArgs> OnMove;
event EventHandler<SetPieceEventArgs> OnSetPiece;
bool IsPosOutOfRange(Vector2I pos);
IPiece GetPiece(Vector2I pos);
IPiece SetPiece(IPiece piece, Vector2I pos);
bool InsertPiece(IPiece piece, Vector2I pos);
bool MovePiece(Vector2I from, Vector2I to);
IPiece RemovePiece(Vector2I pos);
void Clear();
}