高度

高度

一种世界类型,主世界运行范围为-2032到2031,下界为-128到1023。洞穴、矿石以及下界顶棚遵循新的边界,其他模组的矿石也随之调整。

Altitudo 提升了主世界和下界的天花板并降低了地板,同时让生成的内容随之改变。主世界范围从 -2032 到 2031,下界从 -128 到 1023 —— 达到 Minecraft 世界所允许的最大深度和高度。

它是一种世界类型。在世界创建界面选择 Altitudo,你就会得到这个高世界;不做任何设置,你就会在同一个实例中得到与原版完全相同的世界,无需记住任何设置。没有替换任何 minecraft: 下的内容,因此你已有的世界不受影响,其他数据包也能继续工作。

主世界

深度是原来的三十倍,而且一路向下都是洞穴,而不是一块更高的石头。决定洞穴可以存在于何处的边界随着地板一同下降,决定一个空腔是干燥、水池还是被淹没的含水层也一并随之下移 —— 因此深处拥有开放的洞穴系统、水,以及那些因为某种选择而存在、而非游戏放弃生成的岩浆。

下界

生成高度是原来的八倍,基岩天花板随之上升,其上依然保留与原版相同的 128 格建筑空间。岩浆海的深度与地板下降的幅度一致:160 格而非 32 格。

下界是这类模组中大多数所遗漏的一半。只提高建筑高度限制,只会给你一个在天花板上方放置方块的地方;提高生成高度而不随之移动密度梯度,会让旧天花板之上的所有空间都被实心地狱岩填满。Altitudo 两者兼顾。

矿石,以及其他模组的矿石

原版将矿石可能出现的位置写为一个高度值,而其中大多数高度都是绝对值。一个深度为三十倍的世界不会移动它们,因此它新增的空间将只是光秃秃的石头 —— 一种悄无声息的失败,没有任何错误报告,你只有挖穿它才会发现。

Altitudo 原样输出原版自身的放置配置,并在更深处添加其副本,因此密度在任何深度都不会低于原版。在海平面以下,密度随深度上升,默认在地板处达到原版的 4.5 倍,其曲线可配置。

其他模组的矿石也随之而行。一种矿石之所以被识别,是因为它被配置为矿石,而不是通过 ID 列表,因此无需命名任何东西,当你添加模组时也无需更新任何内容。如果某个模组希望不被改动,只需一个数据包标签即可声明。

底层实现

维度是计算出来的,而不是预先打包好的。一个设置给出范围,游戏读取的文件在内存中由它构建 —— 因此任何深度都是一个值,而不是少数几个预制数据包之一,并且原版自身的世界生成文件是被读取和调整的,而不是被复制后放任其在一个版本之后过时。

将两个原版维度并排来看,它们是同一个公式:边界框是生成高度加上天花板间隙,而 logical_height 是生成高度。下界并非不同的形状,它是同一种形状,只是在天花板之上多了一个间隙。Altitudo 直接这么表述,这也是为什么传送门依然落在地面上,而不是落在岩浆海里。

每一次重写都会被计数和校验。一个没有匹配到任何东西的变换仍然会产生有效的 JSON 和一个能够生成的世界,因此 "found no match"(未找到匹配)是一个会阻止世界界面打开的错误 —— 而不是一个悄无声息的直接通过,把没有洞穴的世界交给你。

要求

Minecraft 1.21.1 上的 NeoForge 21.1.x。MIT 许可。