<本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。>

致繁體用戶:由於近期 MediaWiki 簡繁轉換表故障頻發,繁體譯名不能正確顯示。繁體譯名一概以遊戲內為准,不便之處敬請諒解。

自定义世界生成

来自Minecraft Wiki
跳转至: 导航搜索
Information icon.svg
此特性为Java版独有。

自定义世界生成(Custom world generation)允许数据包改变世界的生成方式,与自定义世界搭配使用时尤其有用。

噪声设置[编辑 | 编辑源代码]

噪声设置(Noise settings)用于生成地形,其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/noise_settings目录下,用于dimension目录中的minecraft:noise生成器。默认世界生成设置包括minecraft:overworld用于一般的主世界生成,minecraft:amplified放大化主世界生成,minecraft:nether用于常规的下界生成,minecraft:caves用于洞穴类型的维度(类似于下界,但又使用主世界的地形特征)生成,minecraft:end用于常规的末路之地生成,minecraft:floating_islands用于浮岛类型的维度(类似于只包括外岛的末地)生成。

JSON格式[编辑 | 编辑源代码]

  • 根标签
    •  bedrock_roof_position:从最大世界高度处至基岩天花板的距离。如果超过了世界范围(0-255),比如“-1”,则天花板不会生成。例如,将此值设定为32将以y=224为天花板顶部生成天花板。如果基岩天花板生成位置过低,自然地形依旧会在其上生成。‌[需要测试]
    •  bedrock_floor_position:基岩地板的y坐标,与bedrock_roof_position类似。将天花板和地板同时设定为255将使其各生成一个平坦的单层基岩‌[需要测试]
    •  sea_level:该维度中的海平面,取值0-255
    •  disable_mob_generation:可以为truefalse[需要测试]
    •  structures:结构设定
      •  stronghold:如何生成要塞的设定。在structures标签下的要塞设定值都是占位符。每个带命名空间的结构都有一个自己的值,这些值才是真正控制要塞生成的值。
      •  structures:该维度中使用的结构列表
        •  <命名空间ID>:该字段的键名是一个结构的命名空间ID,他们在Java版数据值§结构处有一个列表。如果这里没有列出结构,则维度默认使用的biome_source > type中指定的结构将会以一个极高的频率在他们本应该自然生成于的生物群系中生成。
          •  spacing(数字):两个试图生成的结构位置间的平均距离[注 1]
          •  separation(数字):以区块为单位,两个该种类的结构之间的最小距离;必须比spacing
          •  salt(整数):‌[需要测试]帮助随机生成的数字;参阅盐 (密码学)
    •  noise:世界生成参数
      •  top_slide: 世界地形的顶部曲线的设置。
        •  target(整数): 曲线的负对数曲率。负值会使影响区域内的山丘更加圆润,正值会使其更加平坦。绝对值越大效果越明显。
        •  size(整数): 定义了以世界地形顶部为中心的影响区域大小。size由以下公式计算size = <以方块为单位的高度> * 0.25 / size_vertical
        •  offset(整数): 从世界地形顶部移动影响区域。offset使用和size相同的公式,故而offset = <以方块为单位的高度> * 0.25 / size_vertical。对于top_slide,正值向下移动,负值向上移动。
      •  bottom_slide: 世界地形的底部曲线的设置。
        •  target(整数): 曲线的负对数曲率。负值会移除基岩地板并使浮岛的底部更加圆润,正值会生成一个基岩地板。绝对值越大效果越明显。
        •  size(整数):定义了以世界地形底部为中心的影响区域大小。和在top_slide中使用的公式相同。
        •  offset(整数): 从世界地形底部移动影响区域。和在top_slide中使用的公式相同。对于bottom_slide,正值向上移动,负值向下移动。
      •  sampling: ‌[需要测试]
        •  xz_scale(双精度浮点数):伸缩X和Z轴的噪声。更大的值会造成更复杂的水平形状。与旧版自定义中的“平面比例”选项(Coordinate Scale)的工作方式较为相似。
        •  xz_factor(双精度浮点数):平滑水平方向上的噪声。
        •  y_scale(双精度浮点数):伸缩Y轴的噪声。更大的值会造成更复杂的垂直形状。与旧版自定义中的“高度比例”选项(Height Scale)的工作方式较为相似。
        •  y_factor(双精度浮点数):平滑垂直方向上的噪声。
      •  size_vertical(整数):改变陆块在Y轴上的比例。1至15之间的值可以逐渐地增加山丘高度,大于20的值将会使得所有陆地高于通常的海平面63,比32更高的值会使得通常的陆地高度到达100+。‌[需要测试]
      •  size_horizontal(整数):改变陆块在X和Z轴上的比例,生物群系不会因此改变。‌[需要测试]
      •  height(整数): 通过竖直压缩整个世界来改变世界生成的最大高度。例如,当height=128时,陆地会从Y=32处从海中裸出。此属性不影响海平面高度。‌[需要测试]
      •  density_factor(双精度浮点数):‌[需要测试]
      •  density_offset(双精度浮点数;值在-1到1之间):影响平均陆地高度(非海平面)。‌[需要测试]
      •  random_density_offset(布尔值;可选):‌[需要测试]
      •  simplex_surface_noise(布尔值):‌[需要测试]
      •  island_noise_override(布尔值;可选):使世界像末地一样在世界中心生成一个大型岛屿,在周围生成小型岛屿。
      •  amplified(布尔值;可选):在放大化和正常地形生成之间切换。可与“vanilla_layered”类型以及任何维度(下界、末路之地和自定义)的巨型生物群系一起使用。
    •  default_block: 地表方块下方所使用的方块的命名空间ID;参见Java版数据值§方块
      •  Name: 方块的命名空间ID。
      •  Properties: 方块状态
        •  state(字符串):一个方块状态的键值对。
    •  default_fluid: 用于生成海洋和湖的流体的命名空间ID;详见Java版数据值§流体
      •  Name (string): 方块的命名空间ID。
      •  Properties: 方块状态
        •  state(字符串):一个方块状态的键值对。


默认设置[编辑 | 编辑源代码]

以下是minecraft:noise生成器可用的6个预设中的设置。

结构默认值[编辑 | 编辑源代码]

以下是所有命名空间化的结构的默认值。所有预设对于这些结构都使用相同的值,除了minecraft:ruined_portal

表头为文件中的键名,仅给出暂译。

*占位值,无实际效果

**盐不是为了这些结构而准备的;改变这些结构的盐值不会有任何效果

生物群系[编辑 | 编辑源代码]

生物群系(Biome)以JSON文件的形式存储在数据包data/<命名空间>/worldgen/biome目录下。

JSON格式[编辑 | 编辑源代码]

  • 根标签
    •  precipitation: 生物群系的降雨量,可以是 "none"(不下雨)、"rain"(下雨)或"snow"(下雪)。
    •  category:‌[需要测试] 可以是"none""taiga""extreme_hills""jungle""mesa""plains""savanna""icy""the_end""beach""forest""ocean""desert""river""swamp""mushroom""nether"
    •  depth:‌[需要测试]用于产生地形噪声。深度为正的生物群系被认为是陆地,深度为负的生物群系被视为海洋。
    •  scale:‌[需要测试]用于产生地形噪声。竖直方向上拉伸地形。值越小,地形越平整。
    •  temperature:‌[需要测试]用于控制某些游戏功能,例如草和树叶的颜色,以及雪傀儡是否受到伤害。
    •  temperature_modifier:‌[需要测试] 可为nonefrozen
    •  downfall:‌[需要测试]控制草和树叶的颜色,大于0.85的值还可以使火焰更快地燃烧。
    •  effects: 该生物群系的环境效果。
      •  sky_color:此生物群系中用于天空的十六进制转十进制RGB颜色值。
      •  fog_color:用于迷雾的十六进制转十进制RGB颜色值。
      •  foliage_color: 用于树叶和藤蔓的十六进制转十进制RGB颜色值。若不写,颜色将由湿度(humidity)和温度(temperature)决定。
      •  grass_color: 用于草方块、草、高草丛、蕨、大型蕨和甘蔗的十六进制转十进制RGB颜色值。若不写,颜色将由湿度(humidity)和温度(temperature)决定。
      •  water_color:用于水的十六进制转十进制RGB颜色值。
      •  water_fog_color:用于水下迷雾的十六进制转十进制RGB颜色值。
      •  particle(可选):在整个生物群系中使用的粒子。
        •  probability:‌[需要测试]控制粒子产生的频率。
        •  options:控制要使用的粒子。
          •  type:粒子类型的命名空间ID。
          • 如果typeblockfalling_dust
            •  Name: 所要使用的方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态的键值对。
          • 如果typedust
            •  r: dust颜色的红色分量,在0到1之间。
            •  g: dust颜色的绿色分量,在0到1之间。
            •  b: dust颜色的蓝色分量,在0到1之间。
            •  scale: 控制dust粒子的大小。
          • 如果typeitem
            •  id: 所要使用的物品的命名空间ID。
            •  Count: 物品的数量。
            •  tag: 物品的NBT数据。
      •  ambient_sound(可选):‌[需要测试] 用于环境音效的声音事件。
      •  mood_sound(可选):‌[需要测试] 氛围音效所使用的设置。
        •  sound: 要使用的声音事件。
        •  tick_delay:‌[需要测试]
        •  block_search_extent:‌[需要测试]决定了氛围音效播放位置的正方体范围的大小。此正方体范围以玩家为中心,棱长为2 * block_search_extent + 1
        •  offset:‌[需要测试]
      •  additions_sound(可选):‌[需要测试] 附加音效所使用的设置。
        •  sound:要使用的声音事件。
        •  tick_chance:‌[需要测试]
      •  music(可选):‌[需要测试]应在生物群系中播放的特定音乐。
    •  surface_builder: 所使用的配置好的地表生成器的命名空间ID。
    •  carvers: 要使用的地形雕刻器。
      •  air: 列表内的地形雕刻器将填充空气。
        • : 所使用的配置好的地形雕刻器的命名空间ID。
      •  liquid: 列表内的地形雕刻器将填充液体。
        • : 所使用的配置好的地形雕刻器的命名空间ID。
    •  features:‌[需要测试] 一个由10项地物组成的列表。这10项各自对应一个不同种类的地物;但是,此处需要更多测试来确定该列表的顺序(即这个列表的顺序是否正确)是否对世界生成的运作有影响。地物所在的列表的下标也被用来生成地物种子的一部分,所以将地物移动到另一个列表中无疑将对生成产生影响。每个列表中的每个元素都是一个配置好的地物的命名空间ID。可以是一个空列表。
      • : 内部地物类型RAW_GENERATION(原始生成)。默认不用于任何地物。
      • : 内部地物类型LAKES(湖)。默认用于普通的湖和熔岩湖。
      • : 内部地物类型LOCAL_MODIFICATIONS(局部修改)。默认用于针叶林生成的苔石和冰山。
      • : 内部地物类型UNDERGROUND_STRUCTURES(地下结构)。默认用于主世界的地牢和化石。
      • : 内部地物类型SURFACE_STRUCTURES(地表结构)。默认用于沙漠的水井和蓝冰堆。
      • : 内部地物类型STRONGHOLDS(要塞)。默认不用于任何地物。
      • : 内部地物类型UNDERGROUND_ORES(地下矿石)。默认用于主世界的矿脉、主世界的泥土/沙砾/石头变种的堆(Patch),以及湖中生成的沙子/沙砾/粘土的圆盘状结构(Disk)。
      • : 内部地物类型UNDERGROUND_DECORATION(地下装饰)。默认用于被虫蚀的方块的矿脉、下界的沙砾矿脉、下界的黑石矿脉,以及其他所有的下界矿脉。
      • : 内部地物类型VEGETAL_DECORATION(植被装饰)。默认用于树、竹子、仙人掌、海带,以及其他的地表/海底植被和熔岩/水的喷泉。
      • : 内部地物类型TOP_LAYER_MODIFICATION(顶层修改)。默认用于地表的冰冻现象。
    •  starts:‌[需要测试] 该生物群系所生成的结构。
      • 所使用的配置好的结构特征的命名空间ID。
    •  spawners: 实体生成设置。
      •  <生物种类>: 合法的生物种类有monstercreatureambientwater_creaturewater_ambientmisc
        • 一个刷怪数据的复合标签的列表,列表的每一项都对应一种应该在该生物群系生成的生物。
          • 单个生物的刷怪数据。
            •  type: 该生物的命名空间ID。
            •  weight:‌[需要测试] 该生物生成的频率,更高的值使该生物生成的更频繁。
            •  minCount:‌[需要测试]
            •  maxCount:‌[需要测试]
    •  player_spawn_friendly:‌[需要测试] 可为truefalse
    •  creature_spawn_probability: 若随机值比该值小,则会生成被动生物。必须在0到1之间。
    •  parent(可选):‌[需要测试] 该生物群系的父生物群系的命名空间ID。
    •  spawn_costs:‌[需要测试] 生成代价,实体ID列表。以一套类似于模拟真空中的点电荷系统的机制控制该生物群系内生成生物的数量与密度。
      •  <实体ID>:生成的实体。‌[需要测试]
        •  energy_budget:电势预算。生成此实体时能损失得起的最大电势差。在宏观意义上看,此值越小生成的越少。‌[需要测试]
        •  charge:此次生成放置的点电荷的电荷量。每次生成都在之前放置的点电荷的基础上试图将一个点电荷从无穷远处移动到目标点,计算电势差并比较以决定是否生成。在宏观意义上看,此值越大生成的越少。‌[需要测试]

生物群系分类[编辑 | 编辑源代码]

生物群系分类被用于以下几个游戏机制:‌[需要测试]

  • 所有在ocean的生物群系会被游戏认为是海洋温度分类的一部分;其他温度分类被其生物群系的温度值所控制。这意味着在ocean分类下的生物群系通常应当放在一起。
  • 若玩家位于oceanriver分类下的生物群系,他们在水下听到的是水下音乐而非一般的音乐。
  • 僵尸围城灾厄巡逻队不会在mushroom分类下的生物群系内生成。
  • 生成于desert分类下的生物群系的兔子的材质总是沙漠样式的,除非该生物群系的precipitation设定为snow
  • 生物在water_ambient分类下的生物群系生成的频率比在river分类下的要低很多。
  • 海底神殿不会生成于不在oceanriver分类下的生物群系。

默认生物群系[编辑 | 编辑源代码]

该段落仍需完善。你可以帮助我们扩充关于该主题的更多信息。

地形雕刻器[编辑 | 编辑源代码]

地形雕刻器(Carver)用于添加雕刻出的生物群系的范围,这个范围会被空气或液体代替。其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/configured_carver目录下。

JSON格式[编辑 | 编辑源代码]

根标签

    •  type: 使用的洞穴类型,必须是以下中的一种: "cave"(洞穴), "nether_cave"(下界洞穴), "canyon"(峡谷), "underwater_canyon"(水下峡谷), 或"underwater_cave"(水下洞穴)。
    •  config: 该地形雕刻器所使用的配置。
      •  probability:‌[需要测试]每个区块尝试使用该地表雕刻器的概率,必须在0到1之间。

地表生成器[编辑 | 编辑源代码]

地表生成器(Surface builder)控制地表的形状和其生成的方块。其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/configured_surface_builder目录下。

JSON格式[编辑 | 编辑源代码]

根标签

    •  type:‌[需要测试] 所使用的地表生成器的种类,必须是以下之一: "default"(默认), "mountain"(山地), "shattered_savanna"(破碎的热带草原), "gravelly_mountain", "giant_tree_taiga", "swamp"(沼泽), "badlands"(恶地), "wooded_badlands"(繁茂的恶地), "eroded_badlands"(被风蚀的恶地), "frozen_ocean"(冻洋), "nether"(下界), "nether_forest"(绯红、诡异森林), "soul_sand_valley"(灵魂沙峡谷), "basalt_deltas"(玄武岩三角洲)或"nope"(无)。
    •  config: 地表生成器的配置。
      •  top_material:‌[需要测试] 地形最高层所使用的方块。
        •  Name: 所使用的方块的命名空间ID。
        •  Properties: 方块状态
          •  state: 一个方块状态的键值对。
      •  under_material:‌[需要测试] 与地形最高层直接接触的下一层所使用的方块。
        •  Name: 所使用的方块的命名空间ID。
        •  Properties: 方块状态
          •  state: 一个方块状态的键值对。
      •  underwater_material:‌[需要测试] 水体底部所使用的方块。
        •  Name: 所使用的方块的命名空间ID。
        •  Properties: 方块状态
          •  state: 一个方块状态的键值对。

地物[编辑 | 编辑源代码]

地物(Feature)是世界中独特的元素,如树木矿石等。其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/configured_feature目录下。

JSON格式[编辑 | 编辑源代码]

当一项地物在设置中依赖另一项配置过的地物时,可以填写该配置过的地物的命名空间ID,或写一个复合标签,作为一个嵌套定义。

  • 根标签
    •  type: 配置过的地物的类型,必须为以下类型之一。
    •  config: 此配置过的地物的设置。 设置项由type决定。 任何不在此标签中列出的名称不含有设置项,但其定义中仍须包含一个空的config对象。
      • 如果typetree
        •  trunk_provider:‌[需要测试] 作为树干的方块。注意当树干放置器为"fancy_trunk_placer"时,须使用含xyz标签的方块,如原木。
        •  leaves_provider:‌[需要测试] 作为树叶的方块。
        •  foliage_placer:‌[需要测试] 控制树叶的生成方式。
          •  radius:‌[需要测试]
            • 均匀分布整数,其中minBase为0,maxBase为8,maxSpread为8。
          •  offset:‌[需要测试]
            • 均匀分布整数,其中minBase为0,maxBase为8,maxSpread为8。
          •  type:‌[需要测试]树叶放置器的类型,必须为下列值之一:"blob_foliage_placer", "spruce_foliage_placer", "pine_foliage_placer", "acacia_foliage_placer", "bush_foliage_placer", "fancy_foliage_placer", "jungle_foliage_placer", "mega_pine_foliage_placer", 或 "dark_oak_foliage_placer"
          • 如果typeblob_foliage_placer, bush_foliage_placer, fancy_foliage_placer, 或jungle_foliage_placer
            •  height:‌[需要测试] 影响树叶的高度与宽度,单位是方块。 取值必须为0到16(含0和16)。
          • 如果typespruce_foliage_placer
            •  trunk_height:‌[需要测试]
              • 均匀分布整数,其中minBase为0,maxBase为16,maxSpread为8。
          • 如果typepine_foliage_placer
            •  height:‌[需要测试]
              • 均匀分布整数,其中minBase为0,maxBase为16,maxSpread为8。
          • 如果typemega_pine_foliage_placer
            •  crown_height:‌[需要测试]
              • 均匀分布整数,其中minBase为0,maxBase为16,maxSpread为8。
        •  trunk_placer:‌[需要测试] 控制树干的生成方式。
          •  type:‌[需要测试] 树干放置器的类型,必须为下列值之一:"straight_trunk_placer", "forking_trunk_placer", "giant_trunk_placer", "mega_jungle_trunk_placer", "dark_oak_trunk_placer",或"fancy_trunk_placer"
          •  base_height:‌[需要测试] 取值必须为0到32(含0和32)。
          •  height_rand_a:‌[需要测试] 取值必须为0到24(含0和24)。
          •  height_rand_b:‌[需要测试] 取值必须为0到24(含0和24)。
        •  minimum_size:‌[需要测试]
          •  min_clipped_height (可选):‌[需要测试] 取值必须为0到80(含0和80)。
          •  type:‌[需要测试] 必须为"two_layers_feature_size""three_layers_feature_size"
          • 如果typetwo_layers_feature_size
            •  limit (可选):‌[需要测试] 取值必须为0到81(含0和81)。若不填写,默认值为1。
            •  lower_size (可选):‌[需要测试] 取值必须为0到16(含0和16)。若不填写,默认值为0。
            •  upper_size (可选):‌[需要测试] 取值必须为0到16(含0和16)。若不填写,默认值为1。
          • 如果typethree_layers_feature_size
            •  limit (可选):‌[需要测试][需要测试] 取值必须为0到80(含0和80)。若不填写,默认值为1。
            •  upper_limit (可选):‌[需要测试] 取值必须为0到80(含0和80)。若不填写,默认值为1。
            •  lower_size (可选):‌[需要测试] 取值必须为0到16(含0和16)。若不填写,默认值为0。
            •  middle_size (可选):‌[需要测试] 取值必须为0到16(含0和16)。若不填写,默认值为1。
            •  upper_size (可选):‌[需要测试] 取值必须为0到16(含0和16)。若不填写,默认值为1。
        •  decorators:‌[需要测试] 树木除枝叶外额外的装饰。
          • 一个装饰器。
            •  type: 要使用的装饰器的类型。必须为下列值之一:"trunk_vine", "leave_vine", "cocoa", "beehive",或"alter_ground"
            • 如果typecocoabeehive
              •  probability:‌[需要测试] 取值必须为0到1的浮点数(含0和1)。
            • 如果typealter_ground
        •  max_water_depth (可选):‌[需要测试] 要生成该树所允许的最大水深。 若不填写,默认值为0。
        •  ignore_vines (可选):‌[需要测试] 若不填写,默认值为假。
        •  heightmap:‌[需要测试] 必须是"WORLD_SURFACE_WG"(地表面(世界生成))、"WORLD_SURFACE"(地表面)、"OCEAN_FLOOR_WG"(海床面(世界生成))、"OCEAN_FLOOR"(海床面)、"MOTION_BLOCKING"(阻挡实体运动面)或"MOTION_BLOCKING_NO_LEAVES"(阻挡实体运动面(不含树叶))中的一个。
      • 如果typeflower or random_patch
        •  state_provider:‌[需要测试] 要使用的方块。
        •  block_placer:‌[需要测试]
          •  type:‌[需要测试] 要使用的方块放置器的类型。必须为下列值之一:"simple_block_placer", "double_plant_placer",或"column_placer"
          • 如果typecolumn_placer
        •  whitelist:‌[需要测试]
          • 一个方块状态。
            •  Name: 该方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
        •  blacklist:‌[需要测试]
          • 一个方块状态。
            •  Name: 该方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
        •  tries (可选):‌[需要测试] 若不填写,默认值为128。
        •  xspread (可选):‌[需要测试] 若不填写,默认值为7。
        •  yspread (可选):‌[需要测试] 若不填写,默认值为3。
        •  zspread (可选):‌[需要测试] 若不填写,默认值为7。
        •  can_replace (可选):‌[需要测试] 若不填写,默认值为假。
        •  project (可选):‌[需要测试] 若不填写,默认值为真。
        •  need_water (可选):‌[需要测试] 若不填写,默认值为假。
      • 如果typeblock_pilenether_forest_vegetation
      • 如果typespring_feature
        •  state:‌[需要测试] 生成泉水所使用的液体。
          •  Name: 该液体的命名空间ID。
          •  Properties: 液体的方块状态。
            •  state: 液体的方块状态键及对应值。
        •  requires_block_below (可选):‌[需要测试] 若不填写,默认值为真。
        •  rock_count (可选):‌[需要测试] 若不填写,默认值为4。
        •  hole_count (可选):‌[需要测试] 若不填写,默认值为1。
        •  valid_blocks:‌[需要测试] 有效方块的列表。
          • : 该方块的命名空间ID。
      • 如果typeemerald_ore
        •  target:‌[需要测试]
          • 一个方块状态。
            •  Name: 被替换的方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
        •  state:‌[需要测试]
          • 一个方块状态。
            •  Name: 代替绿宝石生成的方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
      • 如果typehuge_red_mushroomhuge_brown_mushroom
      • 如果typeicebergforest_rock,或lake
        •  state:‌[需要测试]
          • 一个方块状态。
            •  Name: 该方块的命名空间ID。
      • 如果typediskice_patch
        •  state:‌[需要测试]
          • 一个方块状态。
            •  Name: 该方块的命名空间ID。
        •  radius:‌[需要测试]
          • 均匀分布整数,其中minBase为0,maxBase为4,maxSpread为4。
        •  half_height:‌[需要测试] 取值必须为0到4(含0和4)。
        •  targets:‌[需要测试]
          • 一个方块状态。
            •  Name: 该方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
      • 如果typeoreno_surface_ore
        •  target:‌[需要测试] 测试该方块是否能被替换。
          •  predicate_type:‌[需要测试] 测试类型,必须为以下值之一:"always_true""block_match""blockstate_match""tag_match""random_block_match",或"random_blockstate_match"
          • 如果predicate_typeblock_match
            •  block: 要匹配的方块的命名空间ID。
          • 如果predicate_typeblockstate_match
            •  block_state 要匹配的方块状态。
              •  Name: 该方块的命名空间ID。
              •  Properties: 方块状态。
                •  state: 一个方块状态键及对应值。
          • 如果predicate_typetag_match
            •  tag: 要匹配的方块的命名空间ID。
          • 如果predicate_typerandom_block_match
            •  block: 要匹配的方块的命名空间ID。
            •  probability:‌[需要测试]
          • 如果predicate_typerandom_blockstate_match
            •  block_state 要匹配的方块状态。
              •  Name: 该方块的命名空间ID。
              •  Properties: 方块状态。
                •  state: 一个方块状态键及对应值。
            •  probability:‌[需要测试]
        •  state:‌[需要测试] 作为矿石生成的方块状态。
          •  Name: 该方块的命名空间ID。
          •  Properties: 方块状态。
            •  state: 一个方块状态键及对应值。
        •  size:‌[需要测试] 矿脉的大小。取值必须为0到64(含0和64)。
      • 如果typeend_spike
        •  crystal_invulnerable (可选):‌[需要测试] 若不填写,默认值为假。
        •  spikes: 每一处冰刺单独的设置。
          • 一处冰刺。
            •  centerX (可选):‌[需要测试] 若不填写,默认值为0。
            •  centerZ (可选):‌[需要测试] 若不填写,默认值为0。
            •  radius (可选):‌[需要测试] 冰刺的半径。若不填写,默认值为0。
            •  height (可选):‌[需要测试] 冰刺的高度。若不填写,默认值为0。
            •  guarded (可选):‌[需要测试] 是否在末影水晶周围生成铁笼。若不填写,默认值为假。
        •  crystal_beam_target (可选):‌[需要测试] 该水晶光柱指向的方块位置。
          • 该位置的x坐标。
          • 该位置的y坐标。
          • 该位置的z坐标。
      • 如果typeend_gateway
        •  exit (可选):‌[需要测试] 该末地折跃门要把实体传送到的位置。
          • 该位置的x坐标。
          • 该位置的y坐标。
          • 该位置的z坐标。
        •  exact:‌[需要测试]
      • 如果typeseagrassbamboo
        •  probability:‌[需要测试] 取值介于0和1之间,表示概率的十进制数。
      • 如果typesea_pickle
        •  count:‌[需要测试]
          • 均匀分布整数,其中minBase为-10,maxBase为128,maxSpread为128。
      • 如果typesimple_block
        •  to_place:‌[需要测试] 要放置的方块。
          •  Name: 该方块的命名空间ID。
          •  Properties: 方块状态。
            •  state: 一个方块状态键及对应值。
        •  place_on:‌[需要测试] 被覆盖的方块。
          • 要匹配的方块状态。
            •  Name: 该方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
        •  place_in:‌[需要测试] 要替换的方块。
          • 要匹配的方块状态。
            •  Name: 该方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
        •  place_under:‌[需要测试] 其上方的方块。
          • 要匹配的方块状态。
            •  Name: 该方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
      • 如果typehuge_fungus
        •  valid_base_block:‌[需要测试] 被覆盖的方块。
          •  Name: 该方块的命名空间ID。
          •  Properties: 方块状态。
            •  state: 一个方块状态键及对应值。
        •  stem_state:‌[需要测试] 组成菌柄的方块。
          •  Name: 该方块的命名空间ID。
          •  Properties: 方块状态。
            •  state: 一个方块状态键及对应值。
        •  hat_state:‌[需要测试] 组成菌盖的方块。
          •  Name: 该方块的命名空间ID。
          •  Properties: 方块状态。
            •  state: 一个方块状态键及对应值。
        •  decor_state:‌[需要测试] 用于点缀的方块。
          •  Name: 该方块的命名空间ID。
          •  Properties: 方块状态。
            •  state: 一个方块状态键及对应值。
        •  planted (可选):‌[需要测试] 若不填写,默认值为假。
      • 如果typebasalt_columns
        •  reach:‌[需要测试]
          • 均匀分布整数,其中minBase为0,maxBase为2,maxSpread为1。
        •  height:‌[需要测试]
          • 均匀分布整数,其中minBase为1,maxBase为5,maxSpread为5。
      • 如果typedelta_feature
        •  contents:‌[需要测试] 组成三角洲的方块。
          •  Name: 该方块的命名空间ID。
          •  Properties: 方块状态。
            •  state: 一个方块状态键及对应值。
        •  rim:‌[需要测试] 三角洲边缘的方块。
          •  Name: 该方块的命名空间ID。
          •  Properties: 方块状态。
            •  state: 一个方块状态键及对应值。
        •  size:‌[需要测试] 三角洲的大小。
          • 均匀分布整数,其中minBase为0,maxBase为8,maxSpread为8。
        •  rim_size:‌[需要测试] 三角洲边缘的大小。
          • 均匀分布整数,其中minBase为0,maxBase为8,maxSpread为8。
      • 如果typenetherrack_replace_blobs
        •  target:‌[需要测试]
          • 一个方块状态。
            •  Name: 该方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 该方块的命名空间ID。
        •  state:‌[需要测试]
          • 一个方块状态。
            •  Name: 该方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
        •  radius:‌[需要测试]
          • 均匀分布整数
      • 如果typefill_layer
        •  height:‌[需要测试] 要填充的层。
        •  state:‌[需要测试] 用于填充的方块。
          • 一个方块状态。
            •  Name: 该方块的命名空间ID。
            •  Properties: 方块状态。
              •  state: 一个方块状态键及对应值。
      • 如果typerandom_selector
        •  features:‌[需要测试] 一个可供从中随机选择的其他地物的列表。
          • 一种地物与其对应的生成概率。
            •  feature: 该设置过的地物。
            •  chance: 其生成概率。
        •  default: 若未在上述列表中选择,则使用的设置过的地物。
      • 如果typesimple_random_selector
        •  features:‌[需要测试] 一个可供从中等概率随机选择的其他地物的列表。
          •  feature: 一种地物。
      • 如果typerandom_boolean_selector
        •  feature_true:‌[需要测试] 若随机生成的布尔值为真,则使用的设置过的地物。
        •  feature_false:‌[需要测试] 若随机生成的布尔值为假,则使用的设置过的地物。
      • 如果typedecorated_feature_configuration
        •  feature: 该设置过的地物。
        •  decorator:‌[需要测试] 用以修改该设置过的地物的装饰器。

数据种类[编辑 | 编辑源代码]

上述JSON格式会反复用到以下这些复杂的数据类型,为了避免污染主JSON格式树的排版和重复添加这些内容,它们被移动到了这里。

  •  Blockstate Provider(方块状态声明):‌[需要测试] 此数据结构用于为生成方块状态定义一个更高级的设置。
    •  type: 所使用的声明的类型。必须是"simple_state_provider""weighted_state_provider""plain_flower_provider""forest_flower_provider""rotated_block_provider"中的一个。
    • 如果typesimple_state_providerrotated_block_provider
      •  state: 一个方块状态
        •  Name: 所使用的方块的命名空间ID。
        •  Properties: 方块状态
          •  state: 一个方块状态的键值对。
    • 如果typeweighted_state_provider
      •  entries: 可供选择的方块状态的列表。
        • 一个方块状态和对应的权重。
          •  weight: 该方块状态被选取的权重;更高的值增加被选取的频率。
          •  data: 一个方块状态
            •  Name: 所使用的方块的命名空间ID。
            •  Properties: 方块状态
              •  state: 一个方块状态的键值对。
  •  Uniform Int(均匀分布整数):‌[需要测试] 此数据结构代表一个在basebase + spread之间(含)的随机生成的整数,在上述区间内每个整数被抽取到的概率相同。spread必须大于等于0。额外的,不同的配置选项会在此处加上更多限制条件;这些限制条件会用minBasemaxBasemaxSpread表达。这些限制条件的边界都是取得到的。若没有声明这些限制条件,那么任意的base和非负的spread都是可接受的。或者,整个复合标签都可以被一个整型数据代替,这相当于将base设为该整数,将spread设为0,效果上等同于声明一个常量。此时,若minBasemaxBase存在,它们依然生效。
    •  base: 可生成的最小数字。
    •  spread: 生成随机数字的闭区间的大小。

地物名称[编辑 | 编辑源代码]

以下为地物的所有有效名称:

  • no_op
  • chorus_plant
  • void_start_platform
  • desert_well
  • fossil
  • ice_spike
  • glowstone_blob
  • freeze_top_layer
  • vines
  • monster_room
  • blue_ice
  • end_island
  • kelp
  • coral_tree
  • coral_mushroom
  • coral_claw
  • weeping_vines
  • twisting_vines
  • bonus_chest
  • basalt_pillar
  • tree
  • flower
  • random_patch
  • block_pile
  • nether_forest_vegetation
  • spring_feature
  • emerald_ore
  • huge_red_mushroom
  • huge_brown_mushroom
  • iceberg
  • forest_rock
  • lake
  • disk
  • ice_patch
  • ore
  • no_surface_ore
  • end_spike
  • end_gateway
  • seagrass
  • bamboo
  • sea_pickle
  • simple_block
  • huge_fungus
  • basalt_columns
  • delta_feature
  • netherrack_replace_blobs
  • fill_layer
  • random_selector
  • simple_random_selector
  • random_boolean_selector
  • decorated
  • decorated_flower

装饰器[编辑 | 编辑源代码]

装饰器(Decorator)能以多种方式来改变地物的生成。

JSON格式[编辑 | 编辑源代码]

  • 根标签
    •  type:配置过的装饰器的类型。必须是以下列出的一种类型之一。
    •  config: 该装饰器的设置。设置的属性根据type的不同而不同。在此标签下方未列出的名字不含有任何设置;但是这种情况下也依然必须设置一个空的config对象。
      • typechancelava_lakewater_lake
      • typecountfireglowstonecount_multilayer
        •  count:‌[需要测试]
          • 均匀分布整数,其中minBase为-10,maxBase为128,maxSpread为128。
      • typecount_noise
      • typecount_noise_biased
      • typecount_extra
      • typerangerange_biasedrange_very_biased
        •  bottom_offset(可选):‌[需要测试]若不写,默认为0。
        •  top_offset(可选):‌[需要测试]若不写,默认为0。
        •  maximum(可选):‌[需要测试]若不写,默认为0。
      • typedepth_average
      • typecarving_mask
      • typedecorated
        •  outer:‌[需要测试] 外部(Outer)配置过的装饰器。
        •  inner:‌[需要测试] 内部(Inner)配置过的装饰器。

装饰器名称[编辑 | 编辑源代码]

以下为自定义装饰器的所有有效名称:

  • nope
  • square
  • heightmap
  • heightmap_spread_double
  • top_solid_heightmap
  • heightmap_world_surface
  • spread_32_above
  • magma
  • emerald_ore
  • end_gateway
  • dark_oak_tree
  • iceberg
  • end_island
  • chance
  • lava_lake
  • water_lake
  • count
  • fire
  • glowstone
  • count_multilayer
  • count_noise
  • count_noise_biased
  • count_extra
  • range
  • range_biased
  • range_very_biased
  • depth_average
  • carving_mask
  • decorated

结构地物[编辑 | 编辑源代码]

结构地物(Structure feature)是一种特殊的生成结构的地物,其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/configured_structure_feature目录下。。目前尚不清楚普通地物和结构地物之间的区别标准。地牢沙漠水井通常被认定为结构,但此处它们不是结构地物。以及,下界化石是结构地物,但普通的化石并不是,虽然本质上它们一致。

JSON格式[编辑 | 编辑源代码]

  • 根标签
    •  type: 结构地物的类型。必须是以下列出的类型的一种。
    •  config: 该种结构地物的设定,随着type的不同而不同。未在该标签树内列出的名字无可用设定,但此时定义中依然必须包含一个空的config对象。
      • typepillager_outpostvillagebastion_remnant
        •  start_pool: (起始池)起始的结构池/模板池的命名空间ID。
        •  size:‌[需要测试] 必须在0到7之间(含)。
      • typemineshaft
      • typeruined_portal
        •  portal_type:‌[需要测试] 必须为"standard""desert""jungle""swamp""mountain""ocean""nether"
      • typeshipwreck
        •  is_beached(可选):‌[需要测试] 沉船是否搁浅。若不填,默认为false
      • typeocean_ruin
        •  biome_temp:‌[需要测试] 必须为"warm""cold"
        •  large_probability:‌[需要测试] 0到1之间的浮点数概率。
        •  cluster_probability:‌[需要测试] 0到1之间的浮点数概率。
      • typeburied_treasure
        •  probability:‌[需要测试] 0到1之间的浮点数概率。

结构地物名称[编辑 | 编辑源代码]

以下为结构地物的所有有效名称:

  • mansion
  • jungle_pyramid
  • desert_pyramid
  • igloo
  • swamp_hut
  • stronghold
  • monument
  • fortress
  • endcity
  • nether_fossil
  • pillager_outpost
  • village
  • bastion_remnant
  • mineshaft
  • ruined_portal
  • shipwreck
  • ocean_ruin
  • buried_treasure

拼图池[编辑 | 编辑源代码]

拼图池(Jigsaw pool)或模板池(Template pool)使用拼图方块,用于生成结构。其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/template_pool目录下。

JSON格式[编辑 | 编辑源代码]

  • 根标签
    •  name: 该池的命名空间ID。‌[需要测试]
    •  fallback: 回落池,可以被设定为另一模板池。回落池会在该池的所有层的末尾,且无法进一步生成时生成。原版中,回落池用于生成村庄街道的末尾处,即结构文件中的terminators。‌[需要测试]
    •  elements: 一个可供选择的结构列表
      •  一个元素:
        •  weight: 使用该池时,该元素被选中的频率。
        •  element: 该元素的属性。
          •  element_type: 可为minecraft:empty_pool_element以不生成任何结构;minecraft:feature_pool_element,当feature被使用时;minecaft:list_pool_element,当elements被使用时;minecraft:legacy_single_pool_elementminecraft:single_pool_element,当location被使用时。 ‌[需要测试]
          •  feature: 要使用的地物的命名空间ID。
          •  location: 要放置的结构的命名空间ID。
          •  projection: 可为rigidterrain_matching。 ‌[需要测试]
          •  processors: 处理器的命名空间ID,如果是一个字符串。
            •  processors: 所使用的处理器的列表。
              •  一个元素:
                •  processor_type: 所使用的处理器的命名空间ID。
                •  other properties[需要测试]
          •  elements: 一个可供选择的结构列表
            •  一个元素:
              •  weight: 使用该池时,该元素被选中的频率。
              •  location: 要放置的结构的命名空间ID。
              •  projection: 可为rigidterrain_matching。 ‌[需要测试]
              •  element_type: 可为minecraft:empty_pool_element以不生成任何结构;minecaft:list_pool_element,当elements被使用时;minecraft:legacy_single_pool_element,当location被使用时。 ‌[需要测试]
              •  processors: 处理器的命名空间ID,如果是一个字符串。
                •  processors: 所使用的处理器的列表。
                  •  一个元素:
                    •  processor_type: 所使用的处理器的命名空间ID。
                    •  other properties[需要测试]


处理器列表[编辑 | 编辑源代码]

处理器列表(Processor list)是用于在结构中处理方块的处理器的列表。其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/processor_list目录下。

JSON格式[编辑 | 编辑源代码]

  • 根标签
    •  processors: 处理器列表
      •  一个处理器
        •  processor_type: 可为minecraft:ruleminecraft:block_rotminecraft:block_ageminecraft:block_ignoreminecraft:blackstone_replaceminecraft:jigsaw_replacementminecraft:lava_submerged_blockminecraft:gravityminecraft:nop
        • processor_typeminecraft:block_rot:
          •  integrity: 结构的完整度,决定随机移除结构中方块的概率,0到1之间的数字。‌[需要测试]
        • processor_typeminecraft:rule:
          •  rules: 一个从上到下所要应用的规则的列表。‌[需要测试]
            •  一条规则
              •  position_predicate: 要应用到该方块的位置上的方块处理谓词(Predicate)‌[需要测试],可用的方块处理谓词见下
              •  input_predicate: 要应用到被放置的方块上的方块处理谓词
              •  location_predicate: 要应用到该结构生成前的该方块上的方块处理谓词‌[需要测试]
              •  output_state: 所有条件满足时放置的方块
                •  Name: 方块的ID
                •  Properties: 方块状态
                  •  state: 一个方块状态键值对。
        • processor_typeminecraft:block_age:
          •  mossiness: 0以下的值相当于0;1以上的值相当于1。用于决定结构中石质方块中含青苔的变种的比例。‌[需要测试]
        • processor_typeminecraft:block_ignore:
          •  blocks: ‌[需要测试]
            •  一个方块
              •  Name: 所使用的方块的命名空间ID。
              •  Properties: 方块状态
                •  state: 一个方块状态的键值对。
        • processor_typeminecraft:gravity:
          •  heightmap: 必须是"WORLD_SURFACE_WG"(地表面(世界生成))、"WORLD_SURFACE"(地表面)、"OCEAN_FLOOR_WG"(海床面(世界生成))、"OCEAN_FLOOR"(海床面)、"MOTION_BLOCKING"(阻挡实体运动面)或"MOTION_BLOCKING_NO_LEAVES"(阻挡实体运动面(不含树叶))中的一个。
          •  offset: ‌[需要测试]

方块处理谓词[编辑 | 编辑源代码]

  • 根标签
    •  predicate_type: 可为以下值:always_true以永远通过;axis_aligned_linear_pos以一个随机的概率通过,该概率基于方块到结构中心的距离‌[需要测试]block_match以检测一个方块;blockstate_match以检测一个特定的方块状态;random_block_match以检测方块,并以一个随机的概率通过;tag_match以检测方块是否在方块标签中。
    • predicate_typeaxis_aligned_linear_pos
      •  axis: 可以为xyz
      •  min_chance: 当方块距结构中心的距离等于min_dist时,该方块处理谓词通过的概率‌[需要测试]
      •  max_chance: 当方块距结构中心的距离等于max_dist时,该方块处理谓词通过的概率‌[需要测试]。若方块的距离在min_distmax_dist之间,则概率由min_chancemax_chance之间的值线性插值而得,即概率为( 距离 - min_dist ) / ( max_dist - min_dist ) * ( max_chance - min_chance ) + min_chance
      •  min_dist
      •  max_dist
    • predicate_typeblock_match
      •  block: 一个方块ID。
    • predicate_typeblockstate_match
      •  block_state
        •  Name: 方块的ID
        •  Properties: 方块状态
          •  state: 一个方块状态的键值对
    • predicate_typerandom_block_match
      •  block: 方块的ID
      •  probability: 若该方块存在,该方块处理谓词通过的概率(在0到1之间)。
    • predicate_typetag_match
      •  tag: 方块标签的命名空间ID

历史[编辑 | 编辑源代码]

Java版
1.16.220w28a加入了对自定义世界生成的支持。
20w29a噪声设置被移动到了worldgen下。

注释[编辑 | 编辑源代码]

  1. 将它设置为一个数字并不意味着结构会生成得如同这个值一般频繁,仅仅是游戏会尝试去如此生成而已;生物群系和和地形都会阻止一些结构得以生成。两次结构生成位置的尝试之间的最大距离为2*spacing - separation

外部链接[编辑 | 编辑源代码]

原版世界生成设置(直接下载)