// Assets/Scripts/World/Map/IMapService.cs // 地图服务接口,通过 ServiceLocator 注册与查询。 // MapManager 实现此接口;MapPanel 等调用方通过接口解耦。 namespace BaseGames.World.Map { public interface IMapService { bool IsExplored(string roomId); bool IsMapped(string roomId); void SetMapped(string roomId); MapDatabaseSO Database { get; } /// 玩家当前所在区域 ID(最近一次 EVT_RegionChanged 对应的值)。 string CurrentRegionId { get; } /// 已踏入的房间总数。 int ExploredRoomCount { get; } /// 探索进度 0~1(已探索房间数 / 数据库总房间数)。 float GetExplorationProgress(); /// 返回属于指定区域的所有房间数据;regionId 为空时返回空数组。 MapRoomDataSO[] GetRoomsByRegion(string regionId); } }