生成规则
生成规则定义了实体在世界中的生成方式。当您希望自定义实体像原版实体一样自然生成时,就应该使用生成规则。通过不同的组件,您可以定义实体生成的时间、地点和方式。
通常来说,自定义实体可以以与原版实体非常相似的方式生成。例如,像牛一样成群生成,像原版僵尸一样只在夜晚生成,或者像鱼一样只在水下生成。
生成规则示例
以下是一个生成规则的示例,并附有字段说明。
BP/spawn_rules/zombie.json
json
{
"format_version": "1.8.0",
"minecraft:spawn_rules": {
"description": {
"identifier": "minecraft:zombie",
"population_control": "monster"
},
"conditions": [
{
"minecraft:spawns_on_surface": {},
"minecraft:spawns_underground": {},
"minecraft:brightness_filter": {
"min": 0,
"max": 7,
"adjust_for_weather": true
},
"minecraft:difficulty_filter": {
"min": "easy",
"max": "hard"
},
"minecraft:weight": {
"default": 100
},
"minecraft:herd": {
"min_size": 2,
"max_size": 4
},
"minecraft:permute_type": [
{
"weight": 95
},
{
"weight": 5,
"entity_type": "minecraft:zombie_villager"
}
],
"minecraft:biome_filter": {
"test": "has_biome_tag",
"operator": "==",
"value": "monster"
}
}
]
}
}- "
description">"identifier": 要生成的实体 - "
population_control": 控制生成和消失的数量。可设置为"animal"(动物)、"underwater_animal"(水生动物)、"monster"(怪物)和"ambient"(环境生物)。 - "
conditions" 是一个条件列表,必须满足这些条件才能使生成尝试成功。 - "
minecraft:spawns_on_surface"、"minecraft:spawns_underground"和"minecraft:spawns_underwater"控制实体在高度上的生成位置。 - "
minecraft_brightness_filter" 可以设置为0到15,控制实体在哪些光照等级下生成。"adjust_for_weather"定义在下雨或雷暴天气时是否降低光照等级计算。 - "
minecraft:difficulty_filter" 设置启用该实体生成的难度等级范围。 - "
minecraft:herd" 设置在同一生成规则下一起生成的实体数量。 - "
minecraft:permute_type" 通过"weight"(权重)和"entity_type"(实体类型)设置生成的实体有几率变异为另一种实体。 - "
minecraft:biome_filter" 测试特定的生物群系标签。请在文档中查找过滤器语法和生物群系标签列表,或在原版示例包中搜索示例。
所有已知组件
以下是所有已知组件的列表。随着我们更好地理解它们的使用方式,我们将添加相关文档。
minecraft:weight
minecraft:density_limit
minecraft:spawns_on_block_filter
minecraft:spawns_on_block_prevented_filter
minecraft:spawns_above_block_filter
minecraft:herd
minecraft:permute_type
minecraft:brightness_filter
minecraft:height_filter
minecraft:spawns_on_surface
minecraft:spawns_underground
minecraft:spawns_underwater
minecraft:disallow_spawns_in_bubble
minecraft:spawns_lava
minecraft:biome_filter
minecraft:difficulty_filter
minecraft:distance_filter
minecraft:is_experimental
minecraft:world_age_filter
minecraft:delay_filter
minecraft:mob_event_filter
minecraft:is_persistent
minecraft:player_in_village_filter文档说明
minecraft:herd
json
"minecraft:herd": {
"min_size": 1,
"max_size": 2,
"event":"minecraft:entity_born",
"event_skip_count": 1
},- "
minecraft:herd"也可以这样使用,使第二个生成的实体(在此场景中)带有"minecraft:entity_born"事件(作为幼体)。可用于任何事件。"event_skip_count": 2表示前两个实体不会附带此事件生成,但后续所有实体都会。
minecraft:spawns_above_block_filter
json
"minecraft:spawns_above_block_filter": {
"blocks": "minecraft:stone",
"distance": 10
}- "
minecraft:spawns_above_block_filter"会检测垂直方向设定距离内的方块,如果满足条件,实体将成功生成。
minecraft:spawns_on_block_prevented_filter
json
"minecraft:spawns_on_block_prevented_filter": [
"minecraft:nether_wart_block",
"minecraft:shroomlight"
]- 最后,"
minecraft:spawns_on_block_prevented_filter"与上述功能相反。这是一个方块标识符数组,实体永远不会在这些方块上生成。








