小地图选项(MiniMap)
基本信息
| 属性 | 值 |
|---|---|
| 配置文件 | journeymap.minimap.config(预设 1)、journeymap.minimap2.config(预设 2) |
| 宿主类 | journeymap.client.properties.MiniMapProperties(MiniMapProperties.java:26)、MiniMapProperties2(MiniMapProperties2.java:18) |
| 继承链 | MiniMapProperties2 → MiniMapProperties → InGameMapProperties → MapProperties → PropertiesBase |
@Config 字段数 |
17(MiniMapProperties,其余类新增 0 项) |
| 所属页签 | MiniMap1、MiniMap2(由 addSlots() 的 inheritedCategory 参数重映射,字段本身标注 Inherit) |
| 切换热键 | \(KB_MINIMAP_PRESET,见 热键绑定) |
功能
小地图配置是 JourneyMap 中唯一成对存在的一组配置:游戏同时持有 miniMapProperties1 与 miniMapProperties2 两个独立实例(JourneymapClient.java:67-68),玩家按 \ 在两套预设之间来回切换,而当前生效的那一套由 isActive() 标志决定(MiniMapProperties.java:80、isActive() :111)。
getMiniMapProperties(int which)(JourneymapClient.java:156-172)在切换时把目标预设 setActive(true)、另一个 setActive(false),并返回目标实例。
预设 2 的出厂预设
MiniMapProperties2 不新增任何配置项,它只是一套"示范性"出厂预设。newFileInit()(MiniMapProperties2.java:26-42)在首次生成文件时写入:
| 项 | 预设 1 默认 | 预设 2 出厂值 |
|---|---|---|
position |
TopRight |
TopCenter |
shape |
Circle |
Rectangle |
frameAlpha |
100 | 60 |
terrainAlpha |
100 | 60 |
orientation |
North |
PlayerHeading |
reticleOrientation |
Compass |
Compass(不变) |
sizePercent |
30 | 30(不变) |
| 初始激活状态 | 由玩家切换决定 | setActive(false)(:41,即出厂时预设 2 为关闭) |
fontScale / compassFontScale |
1 | 若游戏开启 Unicode 字体则设为 2(:36-40) |
注:
fontScale与compassFontScale实际定义在父类InGameMapProperties/MiniMapProperties上,MiniMapProperties2通过super.fontScale.set(2)与直接改写compassFontScale调整继承来的字段(:38-39)。
数值
| 语言键 | 字段 | 类型 | 默认 | 范围 | 枚举取值 |
|---|---|---|---|---|---|
jm.minimap.enable_minimap(master = true) |
enabled |
bool | true | — | 是否显示小地图 |
jm.minimap.shape |
shape |
枚举 | Circle |
— | Square / Rectangle / Circle(Shape.java:16-18) |
jm.minimap.position |
position |
枚举 | TopRight |
— | TopRight / BottomRight / BottomLeft / TopLeft / TopCenter / Center(Position.java:16-21,共 6 个) |
jm.common.time_format |
timeFormat |
String | 由 TimeFormat.IdProvider 给出 |
— | 时间显示格式 |
jm.minimap.show_fps |
showFps |
bool | false | — | 显示帧率 |
jm.minimap.show_biome |
showBiome |
bool | true | — | 显示当前生物群系 |
jm.minimap.show_time |
showTime |
bool | false | — | 显示游戏内时间 |
jm.minimap.show_location |
showLocation |
bool | true | — | 显示坐标文本 |
jm.minimap.size |
sizePercent |
int | 30 | 1–100 | 小地图边长占屏幕百分比 |
jm.minimap.frame_alpha |
frameAlpha |
int | 100 | 0–100 | 边框不透明度(0 = 全透明) |
jm.minimap.terrain_alpha |
terrainAlpha |
int | 100 | 0–100 | 地形不透明度(0 = 全透明) |
jm.minimap.orientation.button |
orientation |
枚举 | North |
— | North(正北朝上)/ OldNorth(旧式)/ PlayerHeading(随玩家朝向旋转)(Orientation.java:16-18) |
jm.minimap.rotation_smoothing |
rotationSmoothing |
int | 0 | 0–100 | 朝向旋转平滑系数 |
jm.minimap.compass_font_scale |
compassFontScale |
int | 1 | 1–4 | 罗盘字体缩放 |
jm.minimap.show_compass |
showCompass |
bool | true | — | 显示罗盘方向标 |
jm.minimap.show_reticle |
showReticle |
bool | true | — | 显示准星 |
jm.minimap.reticle_orientation |
reticleOrientation |
枚举 | Compass |
— | Compass / PlayerHeading(ReticleOrientation.java:16-17) |
(行号:MiniMapProperties.java:28-77。)
源码不一致:orientation 的出厂值
orientation 字段的注解声明 defaultEnum = "PlayerHeading"(MiniMapProperties.java:61),但 Java 初始化器写的是 new AtomicReference<Orientation>(Orientation.North)(:62)。二者不一致,且实际生效的是 North:
- 全新生成配置文件时走的是 Java 初始化器 →
North ConfigValidation只在当前值为null或不属于枚举集合时才用defaultEnum兜底并回写(ConfigValidation.java:210-217),因此不会把North改成PlayerHeadingOptionSlotFactory读取defaultEnum只是为了在选项控件下方显示"默认值"提示文字(OptionSlotFactory.java:385-391),不影响实际取值
即:选项界面提示的默认值(PlayerHeading)与新建文件真正写入的值(North)不同。其余三个带 defaultEnum 的字段(shape / position / reticleOrientation)以及 CoreProperties.revealShape 的注解值与初始化器一致,无此问题。
preferredMapType(MiniMapProperties.java:79)是非 @Config 字段,默认值 MapType.Name.day,不显示在选项界面。
交互
| 触发 | 行为 |
|---|---|
按 \(KB_MINIMAP_PRESET) |
UIManager.switchMiniMapPreset() 在预设 1 / 预设 2 间切换并重置小地图(KeyEventHandler.java:125-128) |
按 [(KB_MAP_SWITCH_TYPE) |
MiniMap.state().toggleMapType() 切换日/夜/洞穴三种地图(KeyEventHandler.java:119-124) |
Ctrl + J |
整个小地图显示/隐藏(KeyEventHandler.java:94-98) |
| 退出游戏 | 关闭时 UIManager.getInstance().getMiniMap().reset() 与 UIManager.getInstance().reset()(JourneymapClient.java:503-504) |
| 首次生成预设 2 文件 | 套用上表"预设 2 出厂值",并置 setActive(false) |