40 lines
872 B
C#
40 lines
872 B
C#
// using System.Numerics;
|
|
using Godot;
|
|
|
|
using System;
|
|
|
|
public class VirtualPiece {
|
|
private Vector2 pos; // 注意这个坐标的非像素坐标而是棋盘坐标
|
|
|
|
private string name;
|
|
private bool isSelected;
|
|
public object data;
|
|
|
|
public event Action<Vector2> OnMove;
|
|
public event Action<bool> OnSelected;
|
|
|
|
public void Move(Vector2 pos) {
|
|
this.pos = pos;
|
|
OnMove?.Invoke(pos);
|
|
}
|
|
|
|
public Vector2 Pos() {
|
|
return pos;
|
|
}
|
|
|
|
public void Selected(bool isSelected) {
|
|
if (this.isSelected != isSelected) {
|
|
OnSelected?.Invoke(isSelected);
|
|
this.isSelected = isSelected;
|
|
}
|
|
}
|
|
|
|
public bool IsSelected() {
|
|
return isSelected;
|
|
}
|
|
|
|
public VirtualPiece(string name = "", Vector2 pos = new Vector2()) {
|
|
this.name = name;
|
|
this.pos = pos;
|
|
}
|
|
} |