using System.Collections.Generic;
using BaseGames.Core.Save;
namespace BaseGames.World.Map
{
///
/// 玩家地图标记服务接口。
///
/// MapPanel 依赖此接口而非具体组件,
/// 允许替换实现(云存档、多存档槽等扩展场景)。
///
/// 通过 注册与获取。
///
public interface IPinService
{
/// 当前所有地图标记(只读视图)。
IReadOnlyList Pins { get; }
///
/// 每次增删标记时自增的版本号,供消费方进行脏检查。
///
int PinsVersion { get; }
/// 创建并添加一个地图标记。
MapPin CreatePin(string roomId, float normX, float normY,
PinType type = PinType.Marker, string note = "");
/// 移除指定地图标记。
void RemovePin(MapPin pin);
}
}