地图显示选项(Map / InGameMap)
基本信息
| 属性 | 值 |
|---|---|
| 宿主类 | journeymap.client.properties.MapProperties(MapProperties.java:22,abstract)、InGameMapProperties(InGameMapProperties.java:21,abstract) |
@Config 字段数 |
11(MapProperties)+ 8(InGameMapProperties)= 20 |
| 影响的配置文件 | journeymap.fullmap.config、journeymap.minimap.config、journeymap.minimap2.config、journeymap.webmap.config(四者都继承本组字段) |
| 所属页签 | FullMap / WebMap / MiniMap1 / MiniMap2(字段标注 Inherit,由 addSlots() 重映射) |
| 附加非配置字段 | zoomLevel(MapProperties.java:57) |
功能
这两个抽象类构成 JourneyMap 所有"游戏内地图"的公共配置底座。它们控制的是在地图上画什么(实体、路点、网格、洞穴)以及画出来多大、多清晰(图标集、缩放、模糊),与 CoreProperties 中"怎么算地图"的过程类设置相对。
由于四张地图配置都继承同一组字段,改动会同时影响全屏地图、小地图 1/2 和 Web 地图——它们共用同一份字段定义,但各自持久化到不同文件。
MapProperties(11 项)—— 地图上显示哪些图层
| 语言键 | 字段 | 类型 | 默认 | 范围 | 说明 |
|---|---|---|---|---|---|
jm.common.show_mobs |
showMobs |
bool | true | — | 显示敌对生物图标 |
jm.common.show_animals |
showAnimals |
bool | true | — | 显示动物图标 |
jm.common.show_villagers |
showVillagers |
bool | true | — | 显示村民图标 |
jm.common.show_pets |
showPets |
bool | true | — | 显示宠物(已驯服生物)图标 |
jm.common.show_players |
showPlayers |
bool | true | — | 显示其它玩家图标 |
jm.common.show_waypoints |
showWaypoints |
bool | true | — | 显示路点标记 |
jm.common.show_self |
showSelf |
bool | true | — | 显示自身位置标记 |
jm.common.show_grid |
showGrid |
bool | true | — | 显示网格线 |
jm.common.mob_icon_set |
entityIconSetName |
String | "2D" |
— | 实体图标集名称,默认 "2D" |
jm.common.entity_scale |
entityScale |
int | 100 | 50–400 | 实体图标缩放百分比 |
jm.common.entity_blur |
entityBlur |
bool | true | — | 对远距离实体图标做模糊 |
(行号:MapProperties.java:25-55。)
zoomLevel(MapProperties.java:57,new AtomicInteger(0))是非 @Config 字段:它记录当前缩放级别而不作为可调选项暴露;全屏地图的缩放按钮通过 fullMapProperties.zoomLevel.get() 读取并用 Math.pow(2, zoomLevel) 换算成方块边长(ui/fullscreen/Fullscreen.java:695)。
InGameMapProperties(8 项)—— 叠加信息与文字
| 语言键 | 字段 | 类型 | 默认 | 范围 | 说明 |
|---|---|---|---|---|---|
jm.common.show_caves |
showCaves |
bool | true | — | 地图叠加洞穴层 |
jm.common.font_scale |
fontScale |
int | 1 | 1–4 | 地图文字缩放 |
jm.minimap.texture_size |
textureSmall |
bool | true | — | 使用小尺寸纹理 |
jm.minimap.show_waypointlabels |
showWaypointLabels |
bool | true | — | 显示路点文字标签 |
jm.common.location_format_verbose |
locationFormatVerbose |
bool | true | — | 坐标使用冗长格式(含维度名) |
jm.common.location_format |
locationFormat |
String | 由 LocationFormat.IdProvider 给出 |
— | 坐标格式串 |
jm.minimap.mob_heading |
showMobHeading |
bool | true | — | 显示生物朝向箭头 |
jm.minimap.player_heading |
showPlayerHeading |
bool | true | — | 显示玩家朝向箭头 |
(行号:InGameMapProperties.java:24-45。)
preferredMapType(AtomicReference<MapType.Name>,默认 MapType.Name.day)由各具体子类各自声明一份(FullMapProperties.java:18、MiniMapProperties.java:79、WebMapProperties.java:28),同样不带 @Config 注解,通过抽象 getter getPreferredMapType() 暴露。
数值
| 数值名 | 值 |
|---|---|
MapProperties @Config 字段数 |
11 |
InGameMapProperties @Config 字段数 |
8 |
| 合计 | 20 |
| 默认开启的图层数 | 11 项中 11 项全部默认 true(无一项默认关闭) |
entityScale 范围 |
50–400(默认 100,即 100%) |
fontScale 范围 |
1–4(默认 1) |
| 缩放级别换算 | 方块边长 = 2 ^ zoomLevel(Fullscreen.java:695) |
交互
| 触发 | 行为 |
|---|---|
| 在 Options Manager 改动任一图层开关 | 立即影响所有继承该字段的地图(全屏 / 小地图 1 / 小地图 2 / Web 地图) |
| 全屏地图点击放大/缩小按钮 | 按钮启用条件为 zoomLevel < state.maxZoom / > state.minZoom(Fullscreen.java:379、:392),修改 zoomLevel 后立即重建网格渲染器(:717) |
| 游戏开启 Unicode 字体 | FullMapProperties.newFileInit() 把 fontScale 设为 2(FullMapProperties.java:29-32) |
实体图标集设为非 "2D" |
由 getFileName(Entity) 解析到不同图标目录(Constants.ENTITY_ICON_DIR,Constants.java:62) |