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); } }