维度天气参数(Biome Rain)¶
biome_rain 是 Ecliptic Seasons 用于定义季节天气行为的数据包系统。
虽然注册表名称仍然叫做 biome_rain,但它已经不再表示“每个生物群系拥有完全独立的天气”。
在当前版本中,天气最终会写入 Minecraft 的维度级天气数据,因此同一维度中的所有位置共享同一个天气状态。
一个维度
=
一种天气状态
这种设计大幅提升了与原版机制以及依赖 Minecraft 原生天气系统模组的兼容性。
当前天气模型¶
生物群系天气定义仍然作为天气参数来源存在。
系统会读取各个天气定义中的参数,但最终结果会作用于整个维度:
- 降雨
- 雷暴
- 晴天天气持续时间
- 雨天天气持续时间
- 雷暴持续时间
因此,现在应当将 biome_rain 理解为:
维度天气参数
而不是:
每个生物群系独立模拟天气
平原天气模板¶
主世界天气系统会使用:
minecraft:plains
对应的天气定义作为重要的参数来源。
因此,制作天气数据包时,应始终确保存在:
minecraft:plains
对应的有效天气定义。
不要只为自定义生物群系定义天气而忽略平原,否则天气生成可能出现异常行为。
文件位置¶
Biome Rain 配置文件为 JSON 文件。
放置路径:
data/<namespace>/eclipticseasons/biome_rain
基础示例¶
{
"biomes": "minecraft:plains",
"weathers": {
"seasons": {
"spring": {
"rain_chance": 0.45,
"thunder_chance": 0.1
},
"summer": {
"rain_chance": 0.65,
"thunder_chance": 0.4
},
"autumn": {
"rain_chance": 0.35,
"thunder_chance": 0.0
},
"winter": {
"rain_chance": 0.4,
"thunder_chance": 0.0
}
}
}
}
该配置为平原提供了按季节变化的天气参数。
biomes¶
用于指定哪些生物群系关联到该天气参数集。
单个生物群系:
"biomes": "minecraft:plains"
生物群系标签:
"biomes": "#c:is_temperate/overworld"
与旧版本不同,这个字段不应理解为:
每个生物群系拥有独立天气
而应理解为:
哪些生物群系使用或提供该天气定义
对于主世界天气系统,强烈建议至少有一个定义包含:
minecraft:plains
天气映射¶
weathers 使用 SolarTermValueMap(节气映射系统)。
支持四种层级:
default
seasons
sub_seasons
solar_terms
default¶
所有节气共享同一套天气参数。
{
"weathers": {
"default": {
"rain_chance": 0.4,
"thunder_chance": 0.0
}
}
}
适合简单天气配置。
seasons¶
按季节定义天气。
{
"weathers": {
"seasons": {
"spring": {
"rain_chance": 0.5
},
"summer": {
"rain_chance": 0.7
},
"autumn": {
"rain_chance": 0.3
},
"winter": {
"rain_chance": 0.4
}
}
}
}
这是大多数数据包推荐的方式。
sub_seasons¶
按子季节定义天气。
每个季节划分为三个阶段:
early_spring 初春
mid_spring 仲春
late_spring 暮春
early_summer 初夏
mid_summer 仲夏
late_summer 暮夏
early_autumn 初秋
mid_autumn 仲秋
late_autumn 暮秋
early_winter 初冬
mid_winter 仲冬
late_winter 暮冬
示例:
{
"weathers": {
"sub_seasons": {
"early_spring": {
"rain_chance": 0.35
},
"mid_spring": {
"rain_chance": 0.55
},
"late_spring": {
"rain_chance": 0.75
}
}
}
}
可以实现更加平滑的季节过渡。
solar_terms¶
按具体节气定义天气。
{
"weathers": {
"solar_terms": {
"rain_water": {
"rain_chance": 0.55
},
"grain_rain": {
"rain_chance": 0.8
}
}
}
}
提供最高精度的控制能力。
映射优先级¶
同时定义多个层级时,优先级如下:
solar_terms
>
sub_seasons
>
seasons
>
default
即:
节气
>
子季节
>
季节
>
默认值
系统会自动选择最具体的匹配项。
天气参数¶
rain_chance¶
降雨概率。
"rain_chance": 0.5
数值越大,下雨越频繁。
thunder_chance¶
雷暴概率。
"thunder_chance": 0.2
默认值:
0.0
数值越大,雷暴越频繁。
rain¶
降雨持续时间。
"rain": {
"type": "minecraft:uniform",
"value": {
"min_inclusive": 12000,
"max_inclusive": 24000
}
}
单位:游戏刻(tick)。
rain_delay¶
两次降雨之间的间隔。
"rain_delay": {
"type": "minecraft:uniform",
"value": {
"min_inclusive": 24000,
"max_inclusive": 72000
}
}
单位:tick。
thunder¶
雷暴持续时间。
"thunder": {
"type": "minecraft:uniform",
"value": {
"min_inclusive": 6000,
"max_inclusive": 12000
}
}
单位:tick。
thunder_delay¶
两次雷暴之间的间隔。
"thunder_delay": {
"type": "minecraft:uniform",
"value": {
"min_inclusive": 48000,
"max_inclusive": 96000
}
}
单位:tick。
special_effect¶
自定义天气效果。
"special_effect": "eclipticseasons:light_rain_snow"
可用于:
- 暴风雪
- 雾天
- 雨夹雪
- 自定义天气视觉效果
snow_accumulation_speed¶
积雪速度倍率。
"snow_accumulation_speed": 0.85
默认:
1.0
数值越小,积雪越慢。
snow_melt_speed¶
融雪速度倍率。
"snow_melt_speed": 1.2
默认:
1.0
数值越大,融雪越快。
天气特效¶
自定义天气特效定义位置:
data/<namespace>/eclipticseasons/biome_rain_effect
例如:
- 雾天
- 暴风雪
- 复合天气效果
Biome Rain 标签¶
仍然支持天气标签系统。
常见标签:
eclipticseasons:rain/rainless
eclipticseasons:rain/monsoonal
eclipticseasons:rain/seasonal
eclipticseasons:rain/seasonal/hot
eclipticseasons:rain/seasonal/cold
eclipticseasons:rain/arid
eclipticseasons:rain/droughty
eclipticseasons:rain/soft
eclipticseasons:rain/rainy
其主要作用已经从:
独立生物群系天气
转变为:
气候分类
+
湿度修正
其中:
rain/rainless:无雨气候rain/monsoonal:季风气候(明显旱季与雨季)- 其他标签主要参与湿度与气候计算
沙漠与恶地¶
默认情况下,原版无雨生物群系仍保持无雨。
包括:
Deserts(沙漠)
Badlands(恶地)
除非数据包显式修改,否则这些地区不会降雨。
小型生物群系¶
eclipticseasons:is_small
是内部使用的特殊标签。
用于标记面积非常小的生物群系。
大多数数据包作者无需使用。
推荐配置方式¶
对于大多数数据包,仅调整以下参数即可:
rain_chance
thunder_chance
rain
rain_delay
special_effect
snow_accumulation_speed
snow_melt_speed
同时确保:
minecraft:plains
拥有有效天气定义。
推荐设计理念:
共享维度天气
+
季节性天气参数
+
可选特殊效果
这样既能保留季节变化,又能获得最佳兼容性。
注意事项¶
- 不再使用独立生物群系天气系统。
- 同一维度内所有位置共享天气状态。
biome_rain现在只是天气参数来源。- 主世界天气定义应始终包含
minecraft:plains。 - 降雨仍然会参与湿度计算。
- 原版无雨生物群系默认保持无雨。
- 对于大多数数据包,调整标签与概率通常比编写复杂天气表更合适。