原版生物群系
基本信息
| 属性 | 值 |
|---|---|
| 源码位置 | climateControl/biomeSettings/VanillaBiomeSettings.java |
| 配置分类 | VanillaBiome(biomeCategory,:53) |
| 配置开关 | VanillaBiomesOn(默认 true) |
| 主群系元素 | 16 个(14 个带 incidence + 2 个仅 ID) |
| 次级群系 ID | 11 个 |
| 作用对象 | 生物群系分配表,不含方块/物品 |
功能
VanillaBiomeSettings 定义 1.7.10 原版生物群系在 CC 生成算法中的出现率(incidence)、所属气候带与次级群系关系。每个群系是 BiomeSettings.Element,构造时带 (名字, 群系ID, incidence, [hasVillages], 气候带) 五个参数(api/BiomeSettings.java:171-182)。
判定启用:biomesAreActive() 返回 biomesFromConfig.value()(:148-151),对应 综合参数 的 VanillaBiomesOn。原版生物群系无需从其他 mod 读取 ID,setNativeBiomeIDs() 是空实现(:127-130),注释为 “never anything to do in vanilla”。
数值
主群系(Element,:55-70)
| 群系名 | 群系ID | incidence | 气候带 | 源码行 |
|---|---|---|---|---|
| Birch Forest | 27 | 10 | WARM |
:55 |
| Cold Taiga | 30 | 10 | SNOWY |
:56 |
| Desert | 2 | 30 | HOT |
:57 |
| Extreme Hills | 3 | 20 | MEDIUM = COOL + WARM |
:58 |
| Forest | 4 | 20 | MEDIUM = COOL + WARM |
:59 |
| Ice Plains | 12 | 30 | SNOWY |
:60 |
| Jungle | 21 | 5 | WARM |
:61 |
| Mega Taiga | 32 | 5 | COOL |
:62 |
| Mesa Plateau | 39 | 1 | HOT |
:63 |
| Mesa Plateau F | 38 | 4 | HOT |
:64 |
| Plains | 1 | 30 | PLAINS = COOL + WARM + HOT |
:65 |
| Roofed Forest | 29 | 10 | COOL |
:66 |
| Savanna | 35 | 20 | HOT |
:67 |
| Swampland | 6 | 10 | WARM |
:68 |
| Taiga (snowless) | 5 | 10 | COOL |
:69 |
| Ice Mountains | 13 | 0 | SNOWY |
:70 |
Desert、Plains、Savanna 三项的构造多传了一个 true,即 hasVillages = true(:57、:65、:67),这三个是原版村庄允许生成的生物群系。Ice Mountains 的 incidence 为 0,默认不出场——它只在山脉链中被强制拉高,见下方「交互」。
次级群系与别名 ID(:71-100)
| 群系名 | 群系ID | 说明 | 源码行 |
|---|---|---|---|
| Mushroom Island | 14 | 独立 ID | :71 |
| Desert Hills | 17 | Desert 的次级 | :72 |
| Forest Hills | 18 | Forest 的次级 | :73 |
| Taiga Hills | 19 | Taiga 的次级 | :74 |
| Jungle Hills | 22 | Jungle 的次级 | :75 |
| Birch Forest Hills | 28 | Birch Forest 的次级 | :76 |
| Cold Taiga Hills | 31 | Cold Taiga 的次级 | :77 |
| Mega Taiga Hills | 33 | Mega Taiga 的次级 | :78 |
| Extreme Hills+ | 34 | Extreme Hills 的次级 | :79 |
| Savanna Plateau | 36 | Savanna 的次级 | :80 |
| Mesa | 37 | Mesa Plateau F 的次级 | :81 |
| Sunflower Plains | 129 | 独立 ID | :82 |
| Flower Forest | — | Forest 的 M 变体(M(forest, "Flower Forest")) |
:85 |
| Ice Plains Spikes | — | Ice Plains 的 M 变体 | :88 |
| Mega Spruce Taiga | — | Mega Taiga 的 M 变体 | :94 |
| Mesa (Bryce) | — | Mesa 的 M 变体 | :98 |
另有 10 个单参数 M 变体直接复用母群系 ID(M(desert)、:83;M(extremeHills)、:84;M(taiga)、:86;M(swampland)、:87;M(jungle)、:89;M(birchForest)、:90;M(birchForestHills)、:91;M(roofedForest)、:92;M(coldTaiga)、:93;M(extremeHillsPlus)、:95;M(savanna)、:96;M(savannaPlateau)、:97;M(mesaPlateau)、:99;M(mesaPlateau_F)、:100)。
次级群系绑定关系(:108-123)
| 母群系 | 次级群系 | 源码行 |
|---|---|---|
| Desert | Desert Hills | :108 |
| Forest | Forest Hills | :109 |
| Birch Forest | Birch Forest Hills | :110 |
| Roofed Forest | Plains | :111 |
| Taiga | Taiga Hills | :112 |
| Mega Taiga | Mega Taiga Hills | :113 |
| Cold Taiga | Cold Taiga Hills | :114 |
| Plains | BiomeReplacer.Variable:Forest Hills 权重 1、Forest 权重 2 |
:115-118 |
| Ice Plains | Ice Mountains | :119 |
| Jungle | Jungle Hills | :120 |
| Extreme Hills | Extreme Hills+ | :121 |
| Savanna | Savanna Plateau | :122 |
| Mesa Plateau F | Mesa | :123 |
交互
setRules()除setVillages(rules)外,还对 Mesa Plateau(ID 39) 与 Mesa Plateau F(ID 38) 调用rules.disallowStoneBeach(...)(:135-140),禁止这两种台地生成石头海滩。相关见 村庄生物群系。forceIceMountains()在Ice Mountains的 incidence 小于 10 时把它强制设为 10(:163-169)。但调用它是有条件的:api/ClimateControlSettings.java:326-332仅当mountainChains与forceIceMountains同时为真时才调用,并以vanillaMountainsForced标志保证只执行一次(源码注释 “force in ice mountains as a biome for mountains chains / this is hacky but the best quick solution”)。因此在默认配置(Mountains in Mountain Chains = false)下 Ice Mountains 的 incidence 仍是 0,不参与生成。biomeSettings()的组装顺序(api/ClimateControlSettings.java:334-343):先无条件加入oceanBiomeSettings,再按vanillaBiomesOn决定是否加入vanillaBiomeSettings,再按externalBiomeSettings != null决定是否加入外部包,最后无条件加入所有registeredBiomeSettings()(各附属包)。注意附属包不检查biomesAreActive()——相关判断已被注释(:337-339)。- 群系的 incidence 与气候带共同决定它被分配到哪种气候带,见 气候带出现率 与 气候带参数。
- 气候常量共 6 个(
api/Climate.java:26-31):SNOWY、COOL、WARM、HOT、OCEAN、DEEP_OCEAN;分布常量共 9 个(api/ClimateDistribution.java:18-36):SNOWY、COOL、WARM、HOT、MEDIUM(COOL+WARM)、PLAINS(COOL+WARM+HOT)、OCEAN、DEEP_OCEAN、LAND(SNOWY+COOL+WARM+HOT)。
相关条目
- 海洋生物群系 - 与本表并列的
OceanBiome分类 - 气候带出现率 - 气候带与 incidence 的配比
- GenLayer 生成栈 - 本表在
GenLayerBiomeByClimate中的消费方式 - 村庄生物群系 -
hasVillages与disallowStoneBeach