小地图选项(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 改成 PlayerHeading
  • OptionSlotFactory 读取 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)

相关条目