地物(Feature)是在世界生成中用以生成特殊元素的功能。如花、树木、矿物的团簇等。地物只能放置在以所在区块为中心的3x3区块的区域。它们是逐个区块依次尝试生成的。不像结构,地物无法用命令定位。
地物类型[]
地物类型(Feature Type,可简称为地物)决定了生成的方式与内容。
地物类型列表[]
以下列出了地物类型的所有有效ID:
no_op
—不进行操作。用于覆盖现有已配置的地物。bamboo
basalt_columns
basalt_pillar
block_column
block_pile
blue_ice
bonus_chest
chorus_plant
coral_claw
coral_mushroom
coral_tree
delta_feature
desert_well
disk
—只有在当前方块含水的情况下,才能使用指定的半径和深度将方块放置在圆盘中。dripstone_cluster
end_gateway
end_island
end_spike
fill_layer
—填充16×1×16方块范围内的所有空气。在超平坦世界中使用。flower
forest_rock
fossil
—可以放置小型结构。freeze_top_layer
—在积雪生物群系中放置雪并用冰代替水。geode
glowstone_blob
huge_brown_mushroom
huge_fungus
huge_red_mushroom
iceberg
ice_spike
kelp
lake
large_dripstone
monster_room
multiface_growth
nether_forest_vegetation
netherrack_replace_blobs
—用一个方块替换特定半径内的所有目标方块。如果它没有在其位置找到目标方块,它将在生成之前向下移动,直到找到目标方块。no_bonemeal_flower
ore
pointed_dripstone
random_boolean_selector
—随机选择两个地物中的一个,每个地物概率均等。random_selector
—从列表中随机选择一个地物。random_patch
replace_single_block
—使用目标和状态列表替换单个方块。root_system
—生成顶部具有地物的根系。scattered_ore
sculk_patch
seagrass
sea_pickle
simple_block
simple_random_selector
—从列表中随机选择一个地物,每个地物概率均等。spring_feature
tree
twisting_vines
underwater_magma
vegetation_patch
vines
void_start_platform
waterlogged_vegetation_patch
—一片植被,但它会尝试使放置的方块含水。weeping_vines
已配置的地物[]
地物类型决定了生成的方式,而具体的生成细节需要额外配置。为地物类型添加配置后,称为已配置的地物(Configured Feature,可简称为地物)。已配置的地物以JSON文件的形式存储在数据包的data/<命名空间>/worldgen/configured_feature
目录下。
JSON格式[]
- 根标签
- type:地物类型ID。
- config:此已配置的地物的配置。配置项由
type
决定。任何不在此下方列出的名称不含有配置项,但其定义中仍须包含一个空的config
对象。
type
是tree
:- ignore_vines:(可选,默认为false)是否忽略藤蔓。
- force_dirt:(可选,默认为false)是否强制把泥土转换为 dirt_provider所指定的方块。
- trunk_provider:作为树干的方块。注意当树干放置器为
fancy_trunk_placer
时,须使用含axis
状态的方块,如原木。- 方块状态提供器
- foliage_provider:作为树叶的方块。
- 方块状态提供器
- dirt_provider:作为泥土的方块。
- 方块状态提供器
- minimum_size:树木的最小尺寸。
- min_clipped_height:(可选)最小剪裁高度,取值为0到80的闭区间。如果树木可生长的空间低于树干的高度,只要大于或等于此值就会生成。如果未指定,只要空间低于树干高度,树就不会生成。
- type:最小尺寸的类型,必须为
two_layers_feature_size
(两层尺寸限制)或three_layers_feature_size
(三层尺寸限制)。- 如果
type
是two_layers_feature_size
,附加的参数如下:
- 如果
- limit:(可选,默认为1)高于此高度尺寸将限制在
upper_size
下,反之限制在lower_size
下,取值为0到81的闭区间。 - lower_size:(可选,默认为0)低于
limit
高度的尺寸限制,取值为0到16的闭区间。 - upper_size:(可选,默认为1)高于
limit
高度的尺寸限制,取值为0到16的闭区间。- 如果
type
是three_layers_feature_size
,附加的参数如下:
- 如果
- limit:(可选,默认为1)低于此高度尺寸将限制在
lower_size
下,取值为0到80的闭区间。 - upper_limit:(可选,默认为1)高于此高度尺寸将限制在
upper_size
下,取值为0到80的闭区间。 - lower_size:(可选,默认为0)低于
limit
高度的尺寸限制,取值为0到16的闭区间。 - middle_size:(可选,默认为1)高于
limit
高度并低于upper_limit
高度的尺寸限制,取值为0到16的闭区间。 - upper_size:(可选,默认为1)高于
upper_limit
高度的尺寸限制,取值为0到16的闭区间。
- root_placer:(可选)控制树根的生成方式。
- type:树根放置器的类型,目前只有
mangrove_root_placer
。 - root_provider:作为树根的方块。
- 方块状态提供器
- trunk_offset_y:与树干垂直方向上的偏移。
- 整数提供器
- above_root_placement:(可选)控制根上方方块的生成。
- above_root_provider:作为根上方的方块。
- 方块状态提供器
- above_root_placement_chance:生成此方块的概率,取值为0.0到1.0的闭区间。
- 如果
type
是mangrove_root_placer
,附加的参数如下:
- above_root_provider:作为根上方的方块。
- mangrove_root_placement:红树根放置参数。
- max_root_width:根的最大宽度,取值为1到12的闭区间。
- max_root_length:根的最大长度,取值为1到64的闭区间。
- random_skew_chance:随机偏移的概率,取值为0.0到1.0的闭区间。
- can_grow_through:一个方块ID或方块标签,或者一个方块ID的列表。根可以生长穿过的方块。
- muddy_roots_in:一个方块ID或方块标签,或者一个方块ID的列表。根在其中会变为沾泥根的方块。
- muddy_roots_provider:作为沾泥的根的方块。
- 方块状态提供器
- type:树根放置器的类型,目前只有
- trunk_placer:控制树干的生成方式。
- base_height:树干的基础高度,取值为0到32的闭区间。
- height_rand_a:树干的随机额外高度,取值为0到24的闭区间。
- height_rand_b:树干的随机额外高度,取值为0到24的闭区间。
- type:树干放置器的类型,必须为下列值之一:
straight_trunk_placer
(竖直型)、giant_trunk_placer
(2x2竖直型)、forking_trunk_placer
(单分叉型)、fancy_trunk_placer
(多分叉型)、mega_jungle_trunk_placer
(大丛林木型),dark_oak_trunk_placer
(深色橡木型)、bending_trunk_placer
(弯曲型)或upwards_branching_trunk_placer
(树枝型)。- 如果
type
为bending_trunk_placer
,附加的参数如下:
- 如果
- bend_length:弯曲长度,取值为1到64的闭区间。
- 整数提供器
- min_height_for_leaves:(可选,默认为1)生成树叶的最小高度,取值为正整数。
- 如果
type
为upwards_branching_trunk_placer
,附加的参数如下:
- 如果
- extra_branch_steps:生成额外树枝的步骤数,取值为正整数。
- 整数提供器
- extra_branch_length:生成额外树枝长度,取值为非负整数。
- 整数提供器
- place_branch_per_log_probability:每块原木产生树枝的概率,取值为0.0到1.0的闭区间。
- can_grow_through:一个方块ID或方块标签,或者是方块ID的列表。代表树干能生长穿过的方块。
- foliage_placer:控制树叶的生成方式。
- radius:树叶生成半径,取值为0到16的闭区间。
- 整数提供器
- offset:树叶顶层与树干顶层的间距,取值为0到16的闭区间。
- 整数提供器
- type:树叶放置器的类型,必须为下列值之一:
acacia_foliage_placer
(金合欢型)、dark_oak_foliage_placer
(深色橡木型)、blob_foliage_placer
(橡木/白桦型)、bush_foliage_placer
(金字塔型)、fancy_foliage_placer
(球型)、jungle_foliage_placer
(丛林木型)、spruce_foliage_placer
(云杉型)、pine_foliage_placer
(稀疏云杉型)、mega_pine_foliage_placer
(双层稀疏云杉型)或random_spread_foliage_placer
(随机扩散型)。- 如果
type
是blob_foliage_placer
、bush_foliage_placer
、fancy_foliage_placer
或jungle_foliage_placer
,附加的参数如下:
- 如果
- height:树叶的高度,取值为0到16的闭区间。
- 如果
type
是spruce_foliage_placer
,附加的参数如下:
- 如果
- trunk_height:树干的高度,取值为0到24的闭区间。
- 整数提供器
- 如果
type
是pine_foliage_placer
,附加的参数如下:
- height:树叶的高度,取值为0到24的闭区间。
- 整数提供器
- 如果
type
是mega_pine_foliage_placer
,附加的参数如下:
- crown_height:树冠的高度,取值为0到24的闭区间。
- 整数提供器
- 如果
type
是random_spread_foliage_placer
,附加的参数如下:
- foliage_height:树叶的高度,取值为1到512的闭区间。
- 整数提供器
- leaf_placement_attempts:树叶生成尝试次数,取值为0到256的闭区间。
- radius:树叶生成半径,取值为0到16的闭区间。
- decorators:(必选,但可以为空)树木除根枝叶外额外的装饰。
- :一个装饰器。
- type:要使用的装饰器的类型。必须为下列值之一:
trunk_vine
(树干藤蔓)、leave_vine
(树叶藤蔓)、cocoa
(可可果)、beehive
(蜂巢)、alter_ground
(地面方块替换)或attached_to_leaves
(树叶装饰)。- 如果
type
是leave_vine
、cocoa
或beehive
,附加的参数如下:
- 如果
- probability:生成的概率,取值为0.0到1.0的闭区间。
- 如果
type
是alter_ground
,附加的参数如下:
- 如果
- provider:用于替换地面的方块。
- 方块状态提供器
- 如果
type
是attached_to_leaves
,附加的参数如下:
- probability:生成的概率,取值为0.0到1.0的闭区间。
- exclusion_radius_xz:两个装饰物水平距离的最小值,取值为0到16的闭区间。
- exclusion_radius_y:两个装饰物垂直距离的最小值,取值为0到16的闭区间。
- required_empty_blocks:装饰物需要的空方块数量,取值为0到16的闭区间。
- block_provider:装饰物的方块。
- 方块状态提供器
- directions:(不能为空)生成装饰物的方向。
- :一个方向,必须是
up
、down
、north
、south
、west
或east
中的一个。
- :一个方向,必须是
- type:要使用的装饰器的类型。必须为下列值之一:
- :一个装饰器。
type
是flower
、no_bonemeal_flower
或random_patch
:- tries:(可选,默认为128)生成尝试次数,取值为正整数。
- xz_spread:(可选,默认为7)水平方向扩散范围,取值为非负整数。
- y_spread:(可选,默认为3)垂直方向扩散范围,取值为非负整数。
- feature:一个已放置地物ID,或者一个已放置地物对象。代表组成该斑块的已放置地物。
type
是block_pile
:- state_provider:组成该方块堆的方块。
- 方块状态提供器
- state_provider:组成该方块堆的方块。
type
是spring_feature
:- state:生成涌泉所使用的液体。
- 方块状态
- requires_block_below:(可选,默认为true)决定涌泉下方方块是否必须属于
valid_blocks
。 - rock_count:(可选,默认为4)涌泉毗邻的属于
valid_blocks
的方块的数量。 - hole_count:(可选,默认为1)涌泉毗邻的空方块数量。
- valid_blocks:一个方块ID或方块标签,或是方块ID的列表。
- state:生成涌泉所使用的液体。
type
是replace_single_block
:- targets:(必选,但可以为空)替换条件和替换后的方块列表。
- :一项替换条件及其替换后的方块状态。
- target:决定方块是否可以放置的测试。
- 一个规则测试
- state:作为方块生成的方块状态。
- 方块状态
- target:决定方块是否可以放置的测试。
- :一项替换条件及其替换后的方块状态。
- targets:(必选,但可以为空)替换条件和替换后的方块列表。
type
是fossil
:- max_empty_corners_allowed:允许化石结构角落裸露在空气中的最大数量,取值为0到7的闭区间。
- fossil_structures:(不能为空)候选的化石结构模板。
- :一个化石结构模板的资源路径。
- overlay_structures:(不能为空)候选的延伸结构模板。必须与 fossil_structures元素数量相等。
- :一个延伸结构模板的资源路径。
- fossil_processors:一个“处理器列表”的ID,或者一个处理器的列表,或者一个“处理器列表”对象。处理化石结构模板的处理器。
- overlay_processors:一个“处理器列表”的ID,或者一个处理器的列表,或者一个“处理器列表”对象。处理延伸结构模板的处理器。
type
是huge_red_mushroom
或huge_brown_mushroom
:- cap_provider:组成蘑菇伞盖的方块。
- 方块状态提供器
- stem_provider:组成蘑菇伞柄的方块。
- 方块状态提供器
- foliage_radius:(可选,默认为2)菌盖的大小。
- cap_provider:组成蘑菇伞盖的方块。
type
是block_column
:- direction:方块柱的方向,必须是
up
、down
、north
、south
、west
或east
中的一个。 - allowed_placement:一个方块谓词,用于决定方块在此处是否可以放置。
- 方块谓词
- prioritize_tip:决定方块柱是从头开始放置还是从尾开始放置。
- layers:(必选,但可以为空)方块柱每层的方块状态信息。
- :方块柱一层的方块状态信息。
- height:这一层的高度,取值为非负整数。
- 整数提供器
- provider:这一层要放置的方块。
- 方块状态提供器
- height:这一层的高度,取值为非负整数。
- :方块柱一层的方块状态信息。
- direction:方块柱的方向,必须是
type
是vegetation_patch
或waterlogged_vegetation_patch
:- surface:覆盖的表面,必须为
floor
(地板)或ceiling
(天花板)。 - depth:覆盖表面方块的深度,取值为1到128的闭区间。
- 整数提供器
- vertical_range:斑块生成的垂直范围,取值为1到256的闭区间。
- extra_bottom_block_chance:底部额外生成方块的概率,取值为0.0到1.0的闭区间。
- extra_edge_column_chance:边缘额外生成柱子的概率,取值为0.0到1.0的闭区间。
- vegetation_chance:在表面生成植被地物的概率,取值为0.0到1.0的闭区间。
- xz_radius:斑块生成的水平半径。
- 整数提供器
- replaceable:带有
#
的方块标签,斑块可以替换的方块。 - ground_state:斑块替换表面的方块。
- 方块状态提供器
- vegetation_feature:一个已放置地物,或者一个已放置地物对象。代表组成该植被斑块的已放置地物。
- surface:覆盖的表面,必须为
type
是root_system
:- required_vertical_space_for_tree:预留给树木生长的垂直空间,取值为1到64的闭区间。
- root_radius:根系生长的半径,取值为1到64的闭区间。
- root_placement_attempts:根尝试放置的次数,取值为1到256的闭区间。
- root_column_max_height:根系最大高度,取值为1到4096的闭区间。
- hanging_root_radius:垂根生成半径,取值为1到64的闭区间。
- hanging_roots_vertical_span:垂根垂直方向上的广度,取值为0到16的闭区间。
- hanging_root_placement_attempts:垂根尝试放置的次数,取值为1到256的闭区间。
- allowed_vertical_water_for_tree:树生成允许的最大水深,取值为1到64的闭区间。
- root_replaceable:带有
#
的方块标签。根可以替换的方块。 - root_state_provider:作为根的方块。
- 方块状态提供器
- hanging_root_state_provider:作为垂根的方块。
- 方块状态提供器
- allowed_tree_position:决定树木是否可以放置的方块谓词。
- 方块谓词
- feature:一个已放置地物ID,或者一个已放置地物对象。代表树木的已放置地物。
type
是multiface_growth
:- block:(可选,默认为
glow_lichen
)要放置的方块,目前必须为glow_lichen
或sculk_vein
。 - search_range:(可选,默认为10)搜索范围,取值为1到64的闭区间。
- can_place_on_floor:(可选,默认为false)是否可以放置在地板上。
- can_place_on_ceiling:(可选,默认为false)是否可以放置在天花板上。
- can_place_on_wall:(可选,默认为false)是否可以放置在墙上。
- chance_of_spreading:(可选,默认为0.5)传播概率,取值为0.0到1.0的闭区间。
- can_be_placed_on:一个方块ID或方块标签,或是方块ID的列表,代表能放置的依附方块。
- block:(可选,默认为
type
是underwater_magma
:- floor_search_range:搜索地面的垂直范围,取值为0到512的闭区间。
- placement_radius_around_floor:放置岩浆块的半径,取值为0到64的闭区间。
- placement_probability_per_valid_position:每个位置上生成岩浆块的概率,取值为0.0到1.0的闭区间。
type
是iceberg
或forest_rock
:- state:要放置的方块状态。
- 方块状态
- state:要放置的方块状态。
type
是disk
:- state_provider:圆盘方块状态的提供器。
- fallback:当所有规则都不满足时,圆盘使用的方块状态。
- 方块状态提供器
- rules:(必选,但可以为空)方块状态的规则。
- :一条规则。
- if_true:判定规则是否成立的方块谓词。
- 方块谓词
- then:规则成立时使用的方块状态。
- 方块状态提供器
- if_true:判定规则是否成立的方块谓词。
- :一条规则。
- fallback:当所有规则都不满足时,圆盘使用的方块状态。
- radius:圆盘半径,取值为0到8的闭区间。
- 整数提供器
- half_height:圆盘半高,取值为0到4的闭区间。
- target:决定方块是否可以放置的方块谓词。
- 方块谓词
- state_provider:圆盘方块状态的提供器。
type
是lake
:- fluid:湖使用的流体方块。
- 方块状态提供器
- barrier:湖周围的阻挡方块。
- 方块状态提供器
- fluid:湖使用的流体方块。
type
是ore
或scattered_ore
:- size:矿物的大小,取值为0到64的闭区间。
- discard_chance_on_air_exposure:如果矿石将在空气中放置,取消这次生成的概率,取值为0.0到1.0的闭区间。
- targets:(必选,但可以为空)替换条件和替换后的方块列表。
- :一项替换条件及其替换后的方块状态。
- target:决定矿石是否可以放置的测试。
- 一个规则测试
- state:作为矿石生成的方块状态。
- 方块状态
- target:决定矿石是否可以放置的测试。
- :一项替换条件及其替换后的方块状态。
type
是end_spike
:- crystal_invulnerable:(可选,默认为false)决定生成在黑曜石柱上的末地水晶是否为无敌的。
- crystal_beam_target:(可选)所有末地水晶光柱指向的方块位置,是一个只有三个整数的列表。
- 该位置的X坐标。
- 该位置的Y坐标。
- 该位置的Z坐标。
- spikes:(必选,但可以为空。如果为空,使用游戏默认的随机黑曜石柱)每一处黑曜石柱单独的设置。
- :一处黑曜石柱。
- centerX:(可选,默认为0)黑曜石柱中心的X坐标。
- centerZ:(可选,默认为0)黑曜石柱中心的Z坐标。
- radius:(可选,默认为0)黑曜石柱的半径。
- height:(可选,默认为0)黑曜石柱的高度。
- guarded:(可选,默认为false)黑曜石柱上方是否有铁栏杆笼。
- :一处黑曜石柱。
type
是end_gateway
:- exact:决定是否进行精准传送。为true时折跃门将精确地将实体传送到出口位置,反之则传送到出口位置附近的最佳位置。
- exit:(可选)末地折跃门的出口位置,是一个只有三个整数的列表。
- 该位置的X坐标。
- 该位置的Y坐标。
- 该位置的Z坐标。
type
是bamboo
:- probability:在竹子下方放置灰化土的概率的概率。取值为0.0到1.0的闭区间。
type
是seagrass
:- probability:放置高海草而不是海草的概率。取值为0.0到1.0的闭区间。
type
是sea_pickle
:- count:生成海泡菜方块的最大数量,取值为0到256的闭区间。
- 整数提供器
- count:生成海泡菜方块的最大数量,取值为0到256的闭区间。
type
是simple_block
:- to_place:要放置的方块。
- 方块状态提供器
- to_place:要放置的方块。
type
是huge_fungus
:- valid_base_block:巨型菌类下方有效的方块状态。
- 方块状态
- stem_state:组成菌柄的方块。
- 方块状态
- hat_state:组成菌盖的方块。
- 方块状态
- decor_state:用于点缀的方块。
- 方块状态
- planted:(可选,默认为false)代表此菌类是否是被种植的。如果为false,则不能超过世界天花板,可以替换材料为植物的方块,替换其他方块时不掉落物品。
- valid_base_block:巨型菌类下方有效的方块状态。
type
是nether_forest_vegetation
:- state_provider:放置地物时要使用的方块。
- 方块状态提供器
- spread_width:地物扩散的最大水平宽度为
spread_width * 2 -1
。取值为正整数。 - spread_height:地物扩散的最大的垂直高度为
spread_height * 2 -1
。取值为正整数。
- state_provider:放置地物时要使用的方块。
type
是twisting_vines
:- spread_width:地物扩散的最大水平宽度为
spread_width * 2 + 1
。取值为正整数。 - spread_height:地物扩散的最大的垂直高度为
spread_height * 2 + 1
。取值为正整数。 - max_height:缠怨藤最大高度为
max_height * 2
,最小高度为1。取值为正整数。
- spread_width:地物扩散的最大水平宽度为
type
是basalt_columns
:- reach:该玄武岩柱簇内单个玄武岩柱的最大半径,取值为0到3的闭区间。
- 整数提供器
- height:玄武岩柱的高度为
height + 1
,取值为1到10的闭区间。- 整数提供器
- reach:该玄武岩柱簇内单个玄武岩柱的最大半径,取值为0到3的闭区间。
type
是delta_feature
:- contents:组成三角洲主体的方块。
- 方块状态
- rim:三角洲边缘的方块。
- 方块状态
- size:三角洲的大小,取值为0到16的闭区间。
- 整数提供器
- rim_size:三角洲边缘的大小,取值为0到16的闭区间。
- 整数提供器
- contents:组成三角洲主体的方块。
type
是netherrack_replace_blobs
:- target:要替换的目标方块状态。
- 方块状态
- state:替换使用的方块状态。
- 方块状态
- radius:替换半径,取值为0到12的闭区间。
- 整数提供器
- target:要替换的目标方块状态。
type
是fill_layer
:- height:填充层的高度,取值为0到4064的闭区间。
- state:用于填充的方块状态。
- 方块状态
type
是random_selector
:- features:(必选,但可以为空)一个可供从中随机选择的已放置地物的列表。按照从上到下的顺序依次尝试,根据生成概率生成该已放置地物或是尝试下一个。
- :一种已配置的地物与其对应的生成概率。
- chance:生成概率,取值为0.0到1.0的闭区间。
- feature:一个已放置地物ID,或者一个已放置地物对象。
- :一种已配置的地物与其对应的生成概率。
- default:一个已放置地物ID,或者一个已放置地物对象。若未上述列表中的均未生成,使用生成已配置的地物。
- features:(必选,但可以为空)一个可供从中随机选择的已放置地物的列表。按照从上到下的顺序依次尝试,根据生成概率生成该已放置地物或是尝试下一个。
type
是simple_random_selector
:- features:(不能为空列表)一个已放置地物ID或已放置地物标签,或者一个已放置地物对象,或者一个已放置地物ID的列表,或一个已放置地物对象的列表。供从中等概率随机选择一个已放置地物。
type
是random_boolean_selector
:- feature_true:一个已放置地物ID,或一个已放置地物对象。若随机生成的布尔值为真,使用的已放置地物。
- feature_false:一个已放置地物ID,或一个已放置地物对象。若随机生成的布尔值为假,使用的已放置地物。
type
是geode
:- blocks:晶洞使用的各种方块状态的集合。
- filling_provider:晶洞内填充的方块状态。
- 方块状态提供器
- inner_layer_provider:晶洞内层的方块状态。
- 方块状态提供器
- alternate_inner_layer_provider:晶洞内层的交替使用的方块状态。
- 方块状态提供器
- middle_layer_provider:晶洞中层的方块状态。
- 方块状态提供器
- outer_layer_provider:晶洞外层的方块状态。
- 方块状态提供器
- inner_placements:(不能为空)内层放置物的方块状态的集合。
- :内层可以放置的方块状态。
- 方块状态
- :内层可以放置的方块状态。
- cannot_replace:带有
#
的方块标签。晶洞不能替换的方块。 - invalid_blocks:带有
#
的方块标签。晶洞的无效方块。由于bug,该字段填写任何值均会被视为#minecraft:geode_invalid_blocks
。另外,空气也是无效方块。
- filling_provider:晶洞内填充的方块状态。
- layers:晶洞内各层的厚度集合,值越大,该层的最大半径越大。
- filling:(可选,默认为1.7)填充层,取值为0.01到50.0的闭区间。
- inner_layer:(可选,默认为2.2)内层,取值为0.01到50.0的闭区间。
- middle_layer:(可选,默认为3.2)中层,取值为0.01到50.0的闭区间。
- outer_layer:(可选,默认为4.2)外层,取值为0.01到50.0的闭区间。
- crack:晶洞生成裂缝的配置。
- generate_crack_chance:(可选,默认为1.0)产生裂缝的概率,取值为0.0到1.0的闭区间。
- base_crack_size:(可选,默认为2.0)裂缝的基础大小,取值为0.0到5.0的闭区间。
- crack_point_offset:(可选,默认为2)裂缝生成点的偏移,取值为0到10的闭区间。
- noise_multiplier:(可选,默认为0.05)噪声乘数,取值为0.0到1.0的闭区间。
- use_potential_placements_chance:(可选,默认为0.35)在内部生成内部放置物 inner_placements的概率,取值为0.0到1.0的闭区间。
- use_alternate_layer0_chance:(可选,默认为0.0)内层方块为 alternate_inner_layer_provider的概率,取值为0.0到1.0的闭区间。
- placements_require_layer0_alternate:(可选,默认为true)内部放置物是否只能生成在 alternate_inner_layer_provider提供的方块上。。
- outer_wall_distance:(可选,默认为4到5的均匀分布整数)决定中心相对于地物起始点的各轴上的距离,取值为1到20的闭区间。
- 整数提供器
- distribution_points:(可选,默认为3到4的均匀分布整数)分布点数量,取值为1到20的闭区间。
- 整数提供器
- invalid_blocks_threshold:无效方块最大限值。在晶洞的中心附近进行
distribution_points
次检测,发现的无效方块数量超过此数字则不生成。 - point_offset:(可选,默认为1到2的均匀分布整数)偏移,取值为1到10的闭区间。
- 整数提供器
- min_gen_offset:(可选,默认为-16)方块距离中心点最小切比雪夫距离。
- max_gen_offset:(可选,默认为16)方块距离中心点最大切比雪夫距离。
- blocks:晶洞使用的各种方块状态的集合。
type
是dripstone_cluster
:- floor_to_ceiling_search_range:搜索地板和天花板的最大垂直范围,取值为1到512的闭区间。
- height:滴水石簇的高度,取值为1到128的闭区间。
- 整数提供器
- radius:滴水石簇的半径,取值为1到128的闭区间。
- 整数提供器
- max_stalagmite_stalactite_height_diff:石笋与钟乳石的最大高度差,取值为0到64的闭区间。
- height_deviation:高度偏差,取值为1到64的闭区间。
- dripstone_block_layer_thickness:滴水石块层的厚度,取值为0到128的闭区间。
- 整数提供器
- density:密度,取值为0.0到2.0的闭区间。
- 浮点提供器
- wetness:湿度,取值为0.0到2.0的闭区间。
- 浮点提供器
- chance_of_dripstone_column_at_max_distance_from_center:在边缘上生成滴水石块的概率,取值为0.0到1.0的闭区间。
- max_distance_from_edge_affecting_chance_of_dripstone_column:影响滴水石柱生成概率的离边缘的最大距离,取值为1到64的闭区间。
- max_distance_from_center_affecting_height_bias:影响高度偏差的离中心的最大距离,取值为1到64的闭区间。
type
是large_dripstone
:- floor_to_ceiling_search_range:(可选,默认为30)起始点与地板和天花板的最大垂直距离,取值为1到512的闭区间。
- column_radius:半径的最小值和最大值。请注意,此整数提供器不提供单个整数,而是提供它的最小值和最大值。取值为1到60的闭区间。请参阅该图表。
- 整数提供器
- height_scale:值越大高度越高,取值为0.0到20.0的闭区间。
- 浮点提供器
- max_column_radius_to_cave_height_ratio:最大半径与洞穴高度的比,取值为0.1到1.0的闭区间。
- stalactite_bluntness:截断钟乳石的尖端。值越大高度越低,取值为0.1到10.0的闭区间。
- 浮点提供器
- stalagmite_bluntness:截断石笋的尖端。值越大高度越低,取值为0.1到10.0的闭区间。
- 浮点提供器
- wind_speed:值越大,倾角越大,取值为0.0到2.0的闭区间。
- 浮点提供器
- min_radius_for_wind:风生效的最小半径,取值为0到100的闭区间。
- min_bluntness_for_wind:风生效的最小钝度,取值为0.0到5.0的闭区间。
type
是pointed_dripstone
:- chance_of_taller_dripstone:(可选,默认为0.2)生成两格高的滴水石锥的概率,取值为0.0到1.0的闭区间。
- chance_of_directional_spread:(可选,默认为0.7)滴水石锥向某一个水平方向扩散的概率,取值为0.0到1.0的闭区间。
- chance_of_spread_radius2:(可选,默认为0.5)水平扩散两格的概率,取值为0.0到1.0的闭区间。
- chance_of_spread_radius3:(可选,默认为0.5)水平扩散两格后再扩散第三格的概率,取值为0.0到1.0的闭区间。
type
是sculk_patch
:- charge_count:信号的数量,取值为1到32的闭区间。
- amount_per_charge:每条信号的初始能量,取值为1到500的闭区间。
- spread_attempts:进行传播的尝试次数,取值为1到64的闭区间。
- growth_rounds:进行生成的次数,取值为0到8的闭区间。
- spread_rounds:进行传播的次数,取值为0到8的闭区间。
- extra_rare_growths:额外生成幽匿尖啸体的数量。
- 整数提供器
- catalyst_chance:生成幽匿催发体的概率,取值为0.0到1.0的闭区间。
已放置的地物[]
已配置的地物确定了生成的方式与细节,而在世界生成过程中具体的放置位置需要额外定义。给已配置的地物添加放置修饰器(Placement Modifier)后,称为已放置的地物(Placed Feature)。已放置的地物以JSON文件的形式存储在数据包的data/<命名空间>/worldgen/placed_feature
目录下。
JSON 格式[]
- 根标签
- feature:一个已配置的地物的ID,或者一个已配置的地物的对象。
- placement:一个放置修饰器的列表。列表中的修饰器会被按顺序依次调用。
- 一个放置修饰器
- type:放置修饰器的类型。
- 其他附加字段取决于 type的值,参见下文。
- 一个放置修饰器
放置修饰器[]
放置修饰器接收一个初始坐标并返回空或者一个或多个坐标。每个坐标代表一次在此处的生成尝试。放置修饰器可以返回空以取消此次尝试,增加多个相同的坐标以增加生成的次数,或者返回多个不同的坐标以在不同地方进行多次生成尝试。
在已放置的地物中,列表中的放置修饰器会被依次调用,从初始坐标得到最终的坐标列表,以在这些位置进行生成尝试。其中,当直接生成地物时,初始坐标为一个区块的西北下角;当被另外的地物调用时(如被random_selector
类型的地物调用,或被结构池调用),初始坐标为该地物要生成的位置。
以下是 type所有可能的值及对应的附加字段:
- biome—如果该位置的生物群系可以生成该地物,返回当前坐标。否则,返回空。注意,该放置修饰器类型不能用于被其他的地物调用的已放置地物。没有附加字段。
- block_predicate_filter—如果该位置的方块满足谓词,返回当前坐标。否则,返回空。
- predicate:需满足的方块谓词。
- 方块谓词
- predicate:需满足的方块谓词。
- carving_mask—返回该区块中所有被雕刻器雕刻过的坐标。
- step:雕刻生成的阶段;应为
"air"
或"liquid"
。
- step:雕刻生成的阶段;应为
- count—返回多个相同的坐标,以增加尝试生成的次数。
- count:数量。取值为0到256的闭区间。
- 整数提供器
- count:数量。取值为0到256的闭区间。
- count_on_every_layer—在(0,0)到(16,16)的水平相对坐标范围内,在由空气、熔岩或水隔离的每一层尝试随机抽选指定数量的坐标,y轴坐标为该水平坐标上该层的上方一格。返回这些坐标。
- count:数量。取值为0到256的闭区间。
- 整数提供器
- count:数量。取值为0到256的闭区间。
- environment_scan—向上或向下依次检查方块,直到找到满足条件的位置,返回这个位置。如果在最大步数内没有找到,返回空。
- direction_of_search:方向。应为
"up"
或"down"
。 - max_steps:最大移动步数,取值范围为1到32的闭区间。
- target_condition:生成位置需满足的方块谓词。
- 方块谓词
- allowed_search_condition:(可选) 如果指定,那么每一步检查的位置都必须满足该谓词。如果遇到不满足的方块且还没有找到满足 target_condition的方块,返回空。
- 方块谓词
- direction_of_search:方向。应为
- height_range—修改坐标的y值,并返回修改后的坐标。
- height:新的y轴坐标。
- 高度提供器
- height:新的y轴坐标。
- heightmap—返回该水平位置的heightmap高度的上方一格的坐标。
- heightmap:使用的高度图。必须为
MOTION_BLOCKING
、MOTION_BLOCKING_NO_LEAVES
、OCEAN_FLOOR
、OCEAN_FLOOR_WG
、WORLD_SURFACE
或WORLD_SURFACE_WG
。
- heightmap:使用的高度图。必须为
- in_square—X轴坐标和Y轴坐标各自增加一个0到15内随机数。这是random_offset类型的简化形式,相当于y_spread为0、xz_spread为0到15的均匀分布的random_offset类型放置修饰器。没有附加字段。
- noise_based_count—得到的噪声为正时,复制并返回多个当前坐标,数量取决于一个噪声值,根据噪声值平滑变化。得到的噪声值小于等于0时,返回空。噪声值计算公式:
ceil((noise(x / noise_factor, z / noise_factor) + noise_offset) * noise_to_count_ratio)
。- noise_factor:水平缩放噪声图。
- noise_offset:(可选,默认为0)噪声的垂直偏移。
- noise_to_count_ratio:数量与噪声值间的比率。
- noise_threshold_count—复制并返回多个当前坐标。有两种指定的数量,根据噪声值大于或小于指定阈值决定。若
noise(x / 200, z / 200) < noise_level
,使用below_noise
,否则使用above_noise
。- noise_level:阈值。
- below_noise:低于阈值时的数量。低于0时视为0。
- above_noise:高于阈值时的数量。低于0时视为0。
- random_offset—为当前位置加上偏移值并返回该位置。注意,X和Z轴使用的是不同的随机数。
- xz_spread:在x和z轴上的偏移值。取值为-16到16的闭区间。
- 整数提供器
- y_spread:在y轴上的偏移值。取值为-16到16的闭区间。
- 整数提供器
- xz_spread:在x和z轴上的偏移值。取值为-16到16的闭区间。
- rarity_filter—有
1 / chance
的概率返回当前坐标。否则返回空。- chance:指定概率,取值为正整数。
- surface_relative_threshold_filter—如果位于相对于地表的指定范围内,返回当前坐标。否则返回空。
- heightmap:使用的高度图。必须为
MOTION_BLOCKING
、MOTION_BLOCKING_NO_LEAVES
、OCEAN_FLOOR
、OCEAN_FLOOR_WG
、WORLD_SURFACE
或WORLD_SURFACE_WG
。 - min_inclusive:相对于地表的高度的最小值。
- max_inclusive:相对于地表的高度的最大值。
- heightmap:使用的高度图。必须为
- surface_water_depth_filter—若该水平坐标地表(从上到下第一个非空气方块)下的材料不阻挡运动的方块(通常是液体)数量小于指定深度,返回当前坐标。否则返回空。
- max_water_depth:最大深度。
历史[]
Java版 | |||||
---|---|---|---|---|---|
1.16.2 | 20w28a | 加入了对已配置的地物的支持,储存在worldgen/configured_feature 文件夹下。 | |||
pre1 | 已配置的地物从data/minecraft/worldgen/configured_feature/<namespace> 移动到了data/<namespace>/worldgen/configured_feature ,和其他资源保持一致。 | ||||
1.17 | 20w45a | 加入geobe 已配置的地物。 | |||
20w49a | 加入dripstone_cluster 、large_dripstone 和small_dripstone 已配置的地物。 | ||||
21w03a | 加入glow_lichen 已配置的地物。 | ||||
21w05a | dripstone_cluster 的 max_distance_from_center_affecting_chance_of_dripstone_column字段被重命名为 max_distance_from_edge_affecting_chance_of_dripstone_column。 | ||||
21w06a | 加入underwater_magma 已配置的地物。 | ||||
21w07a | 加入glowstone_blob 已配置的地物,但此地物不能使用 config配置。 | ||||
21w08a | geode 加入了 invalid_blocks_threshold字段。
| ||||
加入scattered_ore 已配置的地物,和ore 使用同一个配置。 | |||||
移除no_surface_ore 已配置的地物,被ore 的 discard_chance_on_air_exposure字段替代。 | |||||
ore 加入了 discard_chance_on_air_exposure字段, target和 state字段被 targets替代。 | |||||
dripstone_cluster 和large_dripstone 现在使用浮点提供器,而不是之前的均匀分布浮点数。 | |||||
21w10a | simple_block 的 to_place字段现在使用方块状态声明,而不是之前的方块状态。
| ||||
加入root_system 、growing_plant 、vegetation_patch 和waterlogged_vegetation_patch 已配置的地物。 | |||||
加入random_spread_foliage_provider 树叶放置器。 | |||||
加入bending_trunk_placer 树干放置器。 | |||||
移除tree 的 max_water_depth和 heightmap字段,使用相应的装饰器进行替代。 | |||||
tree 加入 dirt_provider和 force_dirt字段, leaves_provider字段被重命名为 foliage_provider。 | |||||
fossil 现在可以使用 config进行配置。 | |||||
21w15a | geode 现在使用整数提供器,而不是之前分离的字段。 | ||||
21w16a | 移除emerald_ore ,使用replace_single_block 进行代替。 | ||||
21w20a | netherrack_replace_blobs 的 radius字段现在只能为0到12的闭区间内的整数。
| ||||
geode 加入 cannot_replace字段。 | |||||
pre1 | geode 加入 invalid_blocks字段。
| ||||
tree 加入 sapling_provider字段。 | |||||
1.18 | 21w38a | 移除tree 的 sapling_provider字段。 | |||
21w39a | random_patch 、flower 和flower_no_bonemeal 的字段被修改为 tries、 xz_spread、 y_spread、 only_in_air、 allowed_on、 disallowed_on和 feature。
| ||||
growing_plant 被重命名为block_column ,移除 body_provider、 head_provider和 height_distribution字段,取而代之的是 layers字段。 | |||||
simple_block 的字段被修改为 to_place。 | |||||
21w40a | 移除random_patch 、flower 和flower_no_bonemeal 的 only_in_air、 allowed_on和 disallowed_on字段,使用 feature进行代替。
| ||||
移除block_column 的 allow_water字段,使用 allowed_placement进行代替。 | |||||
21w42a | 移除small_dripstone ,使用pointed_dripstone 进行代替。 | ||||
pre1 | 移除lake 的 state字段,使用 fluid和 barrier进行代替。
| ||||
nether_forest_vegetation 加入 spread_width和 spread_height字段。 | |||||
twisting_vines 加入 spread_width、 spread_height和 max_height字段。 | |||||
pre3 | glow_lichen 的 can_be_placed_on字段现在使用方块ID而不是方块状态。
| ||||
vegetation_patch 、waterlogged_vegetation_patch 和random_boolean_selector 现在使用已放置的地物而不是已配置的地物。 | |||||
1.19 | 22w11a | 加入sculk_patch 已配置的地物。 | |||
22w12a | 现在如果树叶将要放置于水中,树叶放置器会自动将树叶变为含水状态。 | ||||
22w14a | 加入surface_disk 已配置的地物,与disk 使用相同的配置。
| ||||
glow_lichen 被重命名为multiface_growth 。 | |||||
加入upwards_branching_trunk_placer 树干放置器。 | |||||
tree 加入可选的 root_placer字段,仅有一种mangrove_root_placer 树根放置器可使用。 | |||||
加入attached_to_leaves 树叶装饰器。 | |||||
leave_vine 树叶装饰器加入 probability字段,此项曾经被硬编码为0.25。 | |||||
disk 加入 can_origin_replace字段。 | |||||
22w15a | 树根放置器的 y_offset字段被重命名为 trunk_offset_y,大部分的字段都移动到 mangrove_root_placement中,加入 above_root_placement字段。 | ||||
disk 的 state字段被 state_provider取代, targets被 target取代,并移除 can_origin_replace字段。 | |||||
移除ice_patch 和surface_disk ,使用disk 进行代替。 |
组件 |
| ||
---|---|---|---|
数据包 | |||
教程 |
|
版本 | |||||||
---|---|---|---|---|---|---|---|
开发周期 |
| ||||||
技术 |
| ||||||
多人游戏 | |||||||
游戏订制 |
语言