refactor(重构): 重构了事件驱动的代码体系,使用全新命名和版本,以及测试套件的初试
- 移除了.csproj文件 - 更新了.gitignore,添加了.editorconfig - 重构了IBoard和IPiece接口,引入了新的事件处理机制 - 优化了CCBoard、CCPiece等类的实现,使用新的事件驱动模型 - 删除了冗余代码,提高了代码的可读性和可维护性
This commit is contained in:
@ -1,32 +1,33 @@
|
||||
using System;
|
||||
using Godot;
|
||||
using Vector2I = Vector.Vector2I;
|
||||
|
||||
|
||||
public interface IBoard {
|
||||
public interface IBoardOn {
|
||||
void OnInsert(object self, IPiece piece) {}
|
||||
void OnRemove(object self, IPiece piece) {}
|
||||
void OnMove(object self, MoveEventArgs args) {}
|
||||
|
||||
void OnAddRecord(object self, MoveRecord record) {}
|
||||
void OnUndoRecord(object self, MoveRecord record) {}
|
||||
void OnSetPieceInteral(object self, SetPieceEventArgs args) {}
|
||||
record SetPieceEventArgs(IPiece? OldPiece, IPiece? NewPiece, Vector2I Pos);
|
||||
record MoveEventArgs(IPiece? Piece, Vector2I From, Vector2I To);
|
||||
}
|
||||
|
||||
public IBoardOn? On { get; protected set; }
|
||||
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; } = new();
|
||||
}
|
||||
|
||||
public class MoveEventArgs : EventArgs {
|
||||
public IPiece? Piece { get; set; }
|
||||
public Vector2I From { get; set; } = new();
|
||||
public Vector2I To { get; set; } = new();
|
||||
}
|
||||
|
||||
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);
|
||||
IPiece? SetPiece(IPiece? piece, Vector2I pos);
|
||||
bool InsertPiece(IPiece piece, Vector2I pos);
|
||||
bool MovePiece(Vector2I from, Vector2I to);
|
||||
IPiece? RemovePiece(Vector2I pos);
|
||||
void Clear();
|
||||
void Clear(bool clearRecords);
|
||||
void AddRecord(IPiece? From, IPiece? To, Vector2I FromPos, Vector2I ToPos);
|
||||
void UndoRecord();
|
||||
record MoveRecord(IPiece? From, IPiece? To, Vector2I FromPos, Vector2I ToPos);
|
||||
}
|
||||
|
Reference in New Issue
Block a user