using System;
using System.Diagnostics.SymbolStore;
using System.Dynamic;
using Godot;
///
/// 可拖拽图块接口
///
public interface ITileDraggable {
///
/// 图块在网格中的位置
///
Vector2I TilePosition { get; set; }
///
/// 是否允许拖拽
///
bool Draggable { get; set; }
///
/// 是否处于碰撞状态(例如位置无效或重叠)
///
bool IsCollided { get; set; }
///
/// 图块占据的矩形区域(相对于 TilePosition)
///
Rect2I TileRect { get; }
///
/// 拖拽时鼠标相对于图块原点的偏移量
///
Vector2I MouseOffset { get; }
///
/// 特殊功能图块列表(如座位、交互点等)
///
SpecialTile[] SpecialTiles { get; }
///
/// 特殊图块定义
///
class SpecialTile {
///
/// 相对位置
///
public readonly Vector2I Position;
///
/// 节点类型(如可行走、作为座位等)
///
public readonly Lab.MapNodeType NodeType;
///
/// 构造特殊图块
///
/// 相对位置
/// 节点类型
public SpecialTile(Vector2I pos, Lab.MapNodeType node) {
Position = pos;
NodeType = node;
}
}
///
/// 获取指定相对坐标处的图块类型
///
/// 相对坐标
/// 地图节点类型
Lab.MapNodeType GetTileType(Vector2I pos);
///
/// 唯一标识符
///
Guid Id { get; }
}