Cat_Anchor 发表于 2024-8-14 13:24:01

基岩技术教程:4.自定义超平坦层

本帖最后由 Cat_Anchor 于 2024-8-17 07:32 编辑




前言

这一期,我们来讲基岩版的平坦世界。众所周知,基岩版的平坦世界在最底部有一层基岩,然后是两层泥土,最顶部是一层草方块。在 Java 版中,超平坦世界的构成可以通过 UI 更改。基岩版中虽然没有自定义超平坦世界的 UI,但也能通过编辑 level.dat 中的 FlatWorldLayers 字段生成自定义平坦世界。


https://klpbbs.com/static/image/hrline/line5.png


基本格式

FlatWorldLayers 字段位于 level.dat 中,需要填写字符串。这个字符串必须是有效的 JSON,否则不能成功加载。

使用这个字段的前提是同级的 Generator 字段设置为 2(平坦),否则这个字段无效。

这个字段的格式如下。
{
"encoding_version": 6, //编码的版本,类似于格式版本
"world_version": "version.pre_1_18", //可选,指定世界是 1.18 以前生成的还是 1.18 以后生成的,更多信息见下
"biome_id": 0, //生物群系的数字 ID
"structure_options": null, //可选,结构生成选项
"block_layers": [ //指定方块层,每层的格式随着 encoding_version 的值变化,这里值是 6
    { //一个方块层,首先生成这个
      "block_name": "minecraft:bedrock", //方块的命名空间 ID
      "block_data": 0, //可选,方块的旧版数据值
      "count": 1 //方块的数量
    },
    { //又一个方块层,生成完上面那个就生成这个
      "block_name": "minecraft:dirt",
      "block_data": 0,
      "count": 2
    },
    { //第三个方块层,在这里是最后生成的,也是最顶部的
      "block_name": "minecraft:grass_block",
      "block_data": 0,
      "count": 1
    }
]
}
可以看出,方块层数组内的方块层是从底部开始生成的,数组内第一个元素反而是生成在世界底部的。

world_version 的值可以是 version.pre_1_18,意思是在 1.18 之前生成;也可以是 version.post_1_18 意思是在 1.18 及以后生成。

以下是不同 encoding_version 时 block_layers 的格式。


encoding_version = 6
{
"block_layers": [
    {
      "block_name": "minecraft:bedrock", //方块的命名空间 ID
      "block_data": 0, //可选,方块的旧版数据值,默认为 0,如果无效,方块将被替换为 minecraft:info_update
      "count": 1 //方块的数量
    }
]
}注:如果这个存档在 1.18 以前生成但在 1.18+ 加载,而且世界底部没有 64 格的空气层,那么会首先生成一个 64 格的空气层来维持旧版世界的样貌。


encoding_version = 5
{
"block_layers": [
    {
      "block_name": "minecraft:bedrock", //方块的命名空间 ID
      "block_data": 0, //可选,方块的旧版数据值,默认为 0,如果无效,方块将被替换为 minecraft:info_update
      "count": 1 //方块的数量
    }
]
}注:如果这个存档在 1.18+ 加载,那么会首先生成一个 64 格的空气层。


encoding_version = 4
{
"block_layers": [
    {
      "block_name": "minecraft:bedrock", //方块的命名空间 ID,block_id 为 0 或未定义时使用这个字段
      "block_id": 0, //方块的数字 ID,如果值为 0 且未定义 block_name,那么生成 minecraft:info_update
      "block_data": 0, //可选,方块的旧版数据值,默认为 0,如果无效,方块将被替换为 minecraft:info_update
      "count": 1 //方块的数量
    }
]
}注:如果这个存档在 1.18+ 加载,那么会首先生成一个 64 格的空气层。


encoding_version < 4
encoding_version 为 0 或 1 或 2 或 3 时使用该结构。{
"block_layers": [
    {
      "block_id": 0, //方块的数字 ID
      "block_data": 0, //可选,方块的数据值,默认为 0,如果无效,方块的数据值将被设为 0
      "count": 1 //方块的数量
    }
]
}注:如果这个存档在 1.18+ 加载,那么会首先生成一个 64 格的空气层。


https://klpbbs.com/static/image/hrline/line1.png


后记

这一期,我们讲解了自定义超平坦层。下期有可能是移动的方块相关内容。




第三期 第四期 第五期

shehjebegeu 发表于 2024-11-2 16:39:43

太好用了,高版本也可以用

YanRan233 发表于 2024-8-14 16:13:38

能不能出个目录[哔哩_脱单]

星空晶体 发表于 2024-8-14 15:10:23

第三期怎么没了[贴吧_滑稽]
页: [1]
查看完整版本: 基岩技术教程:4.自定义超平坦层