基岩技术教程: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
后记
这一期,我们讲解了自定义超平坦层。下期有可能是移动的方块相关内容。
第三期 第四期 第五期 太好用了,高版本也可以用 能不能出个目录[哔哩_脱单] 第三期怎么没了[贴吧_滑稽]
页: [1]