垂直视距
基本信息
| 属性 | 值 |
|---|---|
| 配置键 | cubicchunks.config.vert_view_distance(默认 8) |
| 桥接类 | com.cardinalstar.cubicchunks.api.compat.CubicChunksVideoSettings |
| GUI 控件 | ClientEventHandler.VertViewDistanceSlider |
| 注入位置 | 原版「视频设置」界面(GuiVideoSettings) |
| 最小值 | 2 |
| 最大值 | 装了 Angelica 为 64,未装为 32 |
功能
垂直视距只控制服务器向客户端发送多少立方体,不改变客户端实际渲染距离(原版渲染距离仍由「渲染距离」选项决定)。配置注释明确写着 “Does not affect rendering, only what chunks are sent to client”(CubicChunksConfig.java:80-81)。
CubicChunksVideoSettings(api/compat/CubicChunksVideoSettings.java)是一层薄桥接,把上下限硬编码在这里、把当前值读写接到配置上:
getMinVerticalViewDistance()固定返回2(:8-10)getMaxVerticalViewDistance()返回Mods.Angelica.isModLoaded() ? 64 : 32(:12-14)——装了 Angelica 时上限翻倍getVerticalViewDistance()读CubicChunksConfig.verticalCubeLoadDistance(:16-18)setVerticalViewDistance(int)走CubicChunksConfig.setVerticalViewDistance(:20-22),后者赋值并ConfigurationManager.save立即落盘(CubicChunksConfig.java:283-286)
滑块的注入条件
ClientEventHandler(event/handlers/ClientEventHandler.java)在客户端事件里检查:
if (currentGui instanceof GuiVideoSettings && !Mods.Angelica.isModLoaded()) { // :84
即只有未安装 Angelica 时才把 VertViewDistanceSlider 插进原版视频设置界面(通过 (IGuiVideoSettings) gvs).getOptionsRowList(),:86)。装了 Angelica 时 Angelica 自带的设置界面接管,滑块不再由本模组注入。
滑块本体(ClientEventHandler.java:100 起)宽 150、高 20(:106),拖动时把鼠标 X 映射到 0~1 再用 MathUtil.lerp 换算回整数值(:129,175-176),显示文本为 I18n.format("cubicchunks.gui.vertical_cube_load_distance", 当前值)(:183-186),对应英文 Vertical Distance: %d cubes(en_US.lang:12)。
注:滑块的
getHoverState(...)被覆写为无条件返回 0(ClientEventHandler.java:119-121),即永远不高亮。
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 最小垂直视距 | 2 | CubicChunksVideoSettings.java:9 |
| 最大垂直视距(有 Angelica) | 64 | CubicChunksVideoSettings.java:13 |
| 最大垂直视距(无 Angelica) | 32 | CubicChunksVideoSettings.java:13 |
| 配置默认值 | 8 | CubicChunksConfig.java:82 |
| 滑块尺寸 | 150 × 20 | ClientEventHandler.java:107 |
| 显示文本 | Vertical Distance: %d cubes |
en_US.lang:12 |
交互
| 触发 | 行为 |
|---|---|
| 打开「选项 → 视频设置」(无 Angelica) | 列表中多出一行 Vertical Distance: N cubes 滑块 |
| 拖动滑块 | 立即改写 verticalCubeLoadDistance 并保存配置文件 |
| 安装 Angelica | 该滑块不再出现(Angelica 接管设置界面) |
| 调大垂直视距 | 服务器发送更多立方体 → 内存与带宽上升,远处方块更快可见 |