综合参数(Assorted Parameters)
基本信息
| 属性 | 值 |
|---|---|
| 配置分类 | Assorted Parameters |
| 源码位置 | climateControl/api/ClimateControlSettings.java:126(分类定义),设置项分布于 :128-206 与 :267-306 |
| 设置项数量 | 27 |
| 配置载体 | Forge Configuration,写入 config/climatecontrol.cfg |
| 作用对象 | 生成行为开关、缓存、外部生物群系包与各世界类型接管策略,不是方块/物品 |
功能
Assorted Parameters(climateControlCategory,ClimateControlSettings.java:126)是 Climate Control 设置量最大的分类,混合了三类互不相关的开关:
- 生成行为总开关:
noGenerationChanges、oneSixCompatibility、vanillaLandAndClimate、smootherCoasts - 数值微调:河流、海滩、蘑菇岛、出生点抢救等
- 外部模组与各世界类型的接管策略:
interveneInBOPWorlds、interveneInHighlandsWorlds、noBoPSubBiomes、suppressInStandardWorlds,以及externalBiomeNames
它没有分类描述文本(category("Assorted Parameters") 只给了名字),所以各设置项的说明只能取自各自的 comment 字符串。
数值
| 设置项(配置键) | 字段 | 类型 | 默认值 | 说明(源码原文/摘要) |
|---|---|---|---|---|
Allow Derpy Islands |
allowDerpyIslands |
Boolean | false |
把小岛放在近岸而非深海中 |
maxChasm |
maxRiverChasm |
Double | 10.0 |
允许生成河流的最大高度值;10.0 全放行,0.75 只 plains 无 hills |
TestingMode |
testingMode |
Boolean | false |
加入测试例程并在可疑情况下崩溃 |
0.5 generation |
zeroPointFive |
Boolean | true |
使用更随机的生成器、更良好的河流、更大的稀有气候 |
Biome Size |
biomeSize |
Integer | 4 |
生物群系尺寸(指数):4 为常规,6 为大型生物群系 |
No Generation Changes |
noGenerationChanges |
Boolean | false |
视作未安装 CC 生成;用于加载旧世界或避免区块边界 |
Smoother Coastlines |
smootherCoasts |
Boolean | true |
增加平滑步数,同时略微收缩异常生物群系;改动会产生偶发区块墙 |
VanillaLandAndClimate |
vanillaLandAndClimate |
Boolean | false |
生成类似原版 1.7 的陆块与气候带 |
1.6Compatibility |
oneSixCompatibility |
Boolean | false |
使用 1.6 兼容模式 |
climateRingsNotSaved |
climateRingsNotSaved |
Integer | 3 |
边缘不保存气候;-1 关闭气候保存 |
biomeRingsNotSaved |
biomeRingsNotSaved |
Integer | 3 |
边缘不保存生物群系;大于 3 无效果;-1 关闭保存 |
subBiomeRingsNotSaved |
subBiomeRingsNotSaved |
Integer | -1 |
边缘不保存次级生物群系;默认 3,-1 关闭保存 |
Mushroom Island Incidence |
mushroomIslandIncidence |
Integer | 10 |
千分之一;原版为 10 |
PercentRiverReduction |
percentageRiverReduction |
Integer | 0 |
阻止的河流百分比;改动会在部分河流处产生区块边界 |
WiderRivers |
widerRivers |
Boolean | false |
开启后河流为三格宽 |
WideBeaches |
wideBeaches |
Boolean | false |
开启后海滩为两格宽 |
controlVillageBiomes |
controlVillageBiomes |
Boolean | false |
由 CC 决定村庄生成的生物群系;可能与村庄类模组冲突 |
cacheSize |
cacheSize(private) |
Integer | 0 |
缓存的区块生物群系布局数;超过 500 被忽略,0 或更小关闭缓存 |
rescueLimit |
rescueSearchLimit |
Integer | -1 |
出生点抢救的最大尝试次数;负数表示无限制 |
Mesas for mesa borders |
mesaMesaBorders |
Boolean | false |
台地边缘使用红沙;false 则像原版一样用 desert |
VanillaBiomesOn |
vanillaBiomesOn |
Boolean | true |
在世界中包含原版生物群系 |
alterHighlandsWorlds |
interveneInHighlandsWorlds |
Boolean | false |
在 Highlands 世界类型上强制使用 CC 生成 |
NoBoPSubBiomes |
noBoPSubBiomes |
Boolean | false |
抑制 BoP 次级生物群系生成 |
alterBoPWorlds |
interveneInBOPWorlds |
Boolean | false |
在 Biomes o’ Plenty 世界类型上强制使用 CC 生成 |
suppressInStandardWorlds |
suppressInStandardWorlds |
Boolean | false |
在 default、large biomes、amplified 世界中抑制 CC 生成 |
forceStartContinent |
forceStartContinent |
Boolean | true |
在原点附近强制生成一小块大陆 |
externalBiomeNames |
externalBiomeNames |
String | ""(空) |
逗号分隔的外部生物群系名;改动后须重启 MC;不在列表中的名字不会从配置移除但不起作用 |
字段声明见 ClimateControlSettings.java:128-206、:267-306;显示名常量见同文件 :35-67、:75-77。
交互
noBoPSubBiomes通过派生方法doBoPSubBiomes()返回其取反(:297-299),生成栈中以该方法判断是否执行 BoP 次级生物群系。controlVillageBiomes = true时,AbstractWorldGenerator.setRules()会把收集到的村庄生物群系写入 Minecraft 的静态字段MapGenVillage.villageSpawnBiomes(generator/AbstractWorldGenerator.java:91-93)。详见 村庄生物群系。cacheSize的 note 有一处源码级不一致:cachingOn()被硬编码为return true;(:208-210),其后的原始判断{return cacheSize.value() > 0;}已被注释掉。因此cacheSize()永远返回min(cacheSize, 500)(:212-217),把cacheSize设为 0 实际不会关闭缓存。suppressInStandardWorlds与interveneInBOPWorlds/interveneInHighlandsWorlds一起决定DimensionManager.ignore()的分支走向,详见 世界类型接管。externalBiomeNames为空字符串时ExternalBiomeSettings对象保持为null、不参与设置(:391-395)。注意ExternalBiomePackage本身没有被注册——ClimateControl.java:87的BiomePackageRegistry.instance.register(externalBiomesPackage);处于注释状态(:86注释为 “trying to set it up in ClimateControlSettings instead”)。
无法核实的项
以下 5 个 name 常量在 ClimateControlSettings 中声明后从未被引用(每个仅 1 次命中 = 声明本身),因此不存在对应的配置项:
| 常量 | 字面值 | 声明位置 |
|---|---|---|
moreOceanName |
More Ocean |
ClimateControlSettings.java:36 |
highlandsBiomesOnName |
HighlandsBiomesOn |
ClimateControlSettings.java:47 |
bopBiomesOnName |
BoPBiomesOn |
ClimateControlSettings.java:48 |
thaumcraftBiomesOnName |
ThaumcraftBiomesOn |
ClimateControlSettings.java:49 |
oneSixExpansionName |
1.6Expansions |
ClimateControlSettings.java:56 |
复现命令:grep -c 'moreOceanName' src/main/java/climateControl/api/ClimateControlSettings.java → 1。
同名但真实存在的配置项在各自的 BiomeSettings 中:HighlandsBiomesOn(biomeSettings/HighlandsBiomeSettings.java:336)、BoPBiomesOn(biomeSettings/BoPSettings.java:334)、ThaumcraftBiomesOn(biomeSettings/ThaumcraftBiomeSettings.java:50)。
此外 highlandsBiomesOn 字段(ClimateControlSettings.java:271)是 new Mutable.Concrete<Boolean>(false) 而非配置项,因此不出现在 cfg 文件中。它唯一的写入点是包内的 highlandsOnTracker.accept()(:272-277),而 highlandsOnTracker 本身在全仓库无任何引用(grep -rn 'highlandsOnTracker' src/ 仅命中声明处)——该字段是 package-private,climateControl.biomeSettings 包无法访问它。因此 highlandsBiomesOn 实际上恒为 false。真正生效的 Highlands 开关是 HighlandsBiomeSettings.biomesFromConfig(biomeSettings/HighlandsBiomeSettings.java:336-338,默认 false)。