我的世界基岩版开发教程:数据驱动的世界高度
此文档由TI工作室白玲老师制作,买卖必究
------------------------------------------
创作者可以使用此功能来更改现有世界的高度或创建虚空地图。这将通过减少内存和实现更大的创造性灵活性来提高性能。
在本教程中,您将学习以下内容:
如何在《我的世界:基岩版》中创建一个虚空世界。
如何改变现有世界的高度。
------------------------------------------
限制
此功能不会修改您现有的世界生成以适应新的高度范围。相反,当您将包含 JSON 文件的行为包添加到现有世界时,世界将在给定的最小值和最大值处切片,并且在最小值和最大值范围之外的块将保存在 LevelDB 中,但不可见。
min和坐标之外的所有东西都max将变得不可见,并且在该高度之上将无法构建。此外,在您保存的区域之外不会有新的世界生成,这些区域将生成为type=void.
目前没有混合,世界生成不会缩放到自定义高度。
此功能不会影响现有和已保存的自定义生物群系,因为它只是在自定义高度切割视图。但是,它将阻止新的自定义生物群系生成,因为所有未保存的区域都将生成为无效区域。
此功能的范围是引入具有可修改高度的 void 生成器,以减少内存使用并使创建者更容易使用此功能。
------------------------------------------
一、用它来创造一个虚空世界
①如果您正在运行 Minecraft,请关闭它。
②使用通常的 manifest.json 文件创建行为包文件夹。
③在清单文件的同一级别上创建一个文件夹并将其命名为dimensions。
④在维度文件夹中创建一个文件并将其命名为overworld.json。
⑤将此代码放入文件中并保存。请注意,目前此代码中唯一可变的值是minandmax值。您不能修改生成器类型或维度标识符。
{
"format_version": "1.18.0",
"minecraft:dimension": {
"description": {
"identifier": "minecraft:overworld"
},
"components": {
"minecraft:dimension_bounds": {
"min": -16,
"max": 256
},
"minecraft:generation": {
"generator_type": "void"
}
}
}
}
⑥像往常一样加载行为包。
⑦启动 Minecraft 并创建一个显示坐标且行为包处于活动状态的创意模式世界。
⑧走进世界。它应该如下所示:

虚空世界的可构建高度受最小和最大界限的约束。在这种情况下,我们将其设置为 (-16, 256)。如果您尝试在 JSON 文件中设置的最小值和最大值之外放置一个块,您会收到一条消息,指出无法放置该块。
关于那些最小值和最大值......
您可以将 min 和 max 的值更改为您喜欢的 -512 和 512 之间的 16 的任何倍数。
------------------------------------------
二.接下来,在现有世界上使用它
在本节中,我们将看到如果将数据包应用于“香草”生成的世界会发生什么。(这也可以在您现有的自定义世界上完成,但一如既往,我们建议您进行备份!)
①使用显示坐标创建一个香草创意世界,但不要将行为包应用到它。
②进入这个世界,让它在通常的高度生成和保存地形。
③保存并退出世界,然后关闭 Minecraft。
④打开您在上一节中创建的overworld.json文件,并将最小值和最大值设置为您知道小于生成的世界的值。(我们使用较小的值只是为了演示的目的,当然您也可以将其设置得更大!)请记住,它们必须是 16 的倍数。要真正看到巨大的差异,您可以将它们设置为min: -16和max: 16。
⑤启动 Minecraft 并激活世界的行为包。
⑥当你回到这个世界时,它应该看起来有点不同。它将被削减到您指定的高度,您将无法超出这些限制进行构建。

------------------------------------------
发生了什么
当您采用现有世界并添加数据驱动维度行为包时,会发生两件事:
可构建的高度范围限制为您指定的任何高度。
虚空生成发生在您保存的区域之外。这意味着如果您在 x 坐标上绕着一个半径为 12 的圆环运行,然后添加行为包,则只有该半径中的块(加上我们保存在该半径之外的块缓冲区)将是保存。除此之外,地形将生成为虚空。
使用此功能将停止已保存区域之外的世界生成。它通过将任何新区域生成为空白来工作。如果你跑到最初保存的我们世界区域的边缘,你会看到这一点。

------------------------------------------
如果我删除行为包怎么办?
您的原始高度范围将恢复,以及在高度限制中隐藏的已保存区块。如果您前往新的(未保存的)区域,将发生常规世界生成,但在行为包激活时探索的部分将保持无效- 因为这就是它们的生成和保存方式。
这就是为什么您应该始终进行备份,以便您可以迭代您想要的更改!

----TI匠龙工坊白玲(著)