chore: 删除无用的项目配置和资源文件修改android key,修正godot4.3无法构建的问题
- 移除 .gitattributes 和 .gitignore 文件 - 删除 Asserts 目录下的棋盘和棋子基础资源文件
This commit is contained in:
@ -1,74 +0,0 @@
|
||||
// using System.Numerics;
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public class VirtualBoard {
|
||||
private readonly int Rows;
|
||||
private readonly int Cols;
|
||||
private readonly VirtualPiece[,] pieces;
|
||||
|
||||
// <oldPiece, newPiece>
|
||||
public event Action<VirtualPiece, VirtualPiece> OnSetPiecePos;
|
||||
public event Action<VirtualPiece> OnInsert;
|
||||
public event Action<VirtualPiece> OnRemove;
|
||||
public event Action<Vector2, Vector2> OnMove;
|
||||
|
||||
public VirtualBoard(int Rows, int Cols) {
|
||||
this.Rows = Rows;
|
||||
this.Cols = Cols;
|
||||
pieces = new VirtualPiece[Rows, Cols];
|
||||
}
|
||||
|
||||
public bool ArrPosOutOfRange(Vector2 arrayPos) {
|
||||
return arrayPos.X < 0 || arrayPos.X >= Rows || arrayPos.Y < 0 || arrayPos.Y >= Cols;
|
||||
}
|
||||
|
||||
public VirtualPiece GetPiece(Vector2 arrayPos) {
|
||||
if (ArrPosOutOfRange(arrayPos)) return null;
|
||||
return pieces[(int)arrayPos.X, (int)arrayPos.Y];
|
||||
}
|
||||
|
||||
public VirtualPiece SetPiecePos(VirtualPiece piece, Vector2 arrayPos) {
|
||||
VirtualPiece ret = null;
|
||||
if (ArrPosOutOfRange(arrayPos)) return ret;
|
||||
ret = pieces[(int)arrayPos.X, (int)arrayPos.Y];
|
||||
pieces[(int)arrayPos.X, (int)arrayPos.Y] = piece;
|
||||
OnSetPiecePos?.Invoke(ret, piece);
|
||||
piece?.Move(arrayPos);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public bool InsertPiece(VirtualPiece piece, Vector2 arrayPos) {
|
||||
if (GetPiece(arrayPos) != null) {
|
||||
return false;
|
||||
}
|
||||
OnInsert?.Invoke(piece);
|
||||
SetPiecePos(piece, arrayPos);
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool MovePiece(Vector2 from, Vector2 to) {
|
||||
if (ArrPosOutOfRange(to) || ArrPosOutOfRange(from)) {
|
||||
return false;
|
||||
}
|
||||
if (GetPiece(to) != null) {
|
||||
return false;
|
||||
}
|
||||
OnMove?.Invoke(from, to);
|
||||
SetPiecePos(SetPiecePos(null, from), to);
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool RemovePiece(Vector2 pos) {
|
||||
OnRemove?.Invoke(GetPiece(pos));
|
||||
return SetPiecePos(null, pos) != null;
|
||||
}
|
||||
|
||||
public void Clear() {
|
||||
for (int i = 0; i < Rows; i++) {
|
||||
for (int j = 0; j < Cols; j++) {
|
||||
RemovePiece(new Vector2(i, j));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user