维度筛选(CCDimensions.cfg)
基本信息
| 属性 | 值 |
|---|---|
| 配置分类 | general()(无自定义分类名) |
| 源码位置 | climateControl/api/CCDimensionSettings.java:14-59 |
| 设置项数量 | 2 |
| 配置文件 | config/ClimateControl/CCDimensions.cfg |
| 配置载体 | climateControl.utils.TaggedConfigManager,以 Named.from("CCDimensions.cfg", this) 注册(CCDimensionSettings.java:25-27) |
| 作用对象 | Minecraft 现有维度的筛选,不创建新维度 |
功能
CCDimensionSettings 决定 Climate Control 在哪些原版/模组维度中接管地形生成。它只做筛选——Climate Control 本身不注册任何新维度(grep -rn 'registerWorldProvider' src/ 在整个源码中 0 命中)。
筛选规则(CCDimensionSettings.java:57-59):
public boolean ccOnIn(Integer dimension) {
return includedDimensions.isIncluded(dimension, excludedDimensions);
}
includeDimensions为逗号分隔的维度 ID 白名单- 当
includeDimensions填*时,语义反转为使用excludeDimensions黑名单 - 默认
includeDimensions = "0"→ 默认只在主世界(Overworld,dimension 0)生效 - 默认
excludeDimensions = "-1,1"→ 排除地狱(-1)与末地(1)
该判断在出生点处理中被调用:if (!this.dimensionSettings.ccOnIn(dimension)) { if (!DimensionalSettingsRegistry.instance.useCCIn(dimension)) return; }(DimensionManager.java:313-317)。
文件位置由 new TaggedConfigManager("climatecontrol.cfg", "ClimateControl") 决定(ClimateControl.java:80):通用配置为 config/climatecontrol.cfg,各附属配置写入 config/ClimateControl/<名称>.cfg(TaggedConfigManager.java:29-36、:58-62)。
数值
| 设置项(配置键) | 字段 | 类型 | 默认值 | 说明(源码原文/摘要) |
|---|---|---|---|---|
includeDimensionIDs |
includeDimensions |
String | 0 |
逗号分隔的维度 ID;填 * 表示改用排除列表 |
excludeDimensionIDs |
excludeDimensions |
String | -1,1 |
逗号分隔的维度 ID;仅当包含列表为 * 时使用 |
字段声明见 CCDimensionSettings.java:16-23。
交互
- 两个字符串项都注册了变更观察器(
informOnChange,:53-54),改动后立即重建DimensionSet.Include/DimensionSet.Exclude解析结果(:32-48),无需重启即可生效。 - 与 综合参数 的
suppressInStandardWorlds是两个不同层级的开关:后者按世界类型(WorldType)决定是否接管,前者按维度 ID 决定是否接管。两者需同时放行 CC 才会接管。 - 逐维度的
ClimateControlSettings覆盖保存在世界存档内的worldSpecificConfig目录(ClimateControl.java:229-233创建目录,:196-197写入)。