附加包教程:50.拼图结构(二)
本帖最后由 Cat_Anchor 于 2024-11-2 10:11 编辑前言
来,看着这张图片。https://pic.imgdb.cn/item/6724be72d29ded1a8c73bcc2.jpg
这是什么?这是我做的第一个拼图结构。所谓拼图结构,就是若干个结构模板拼起来的大结构。
上期,我们简单解释了拼图结构。在 1.21.50.26 中,拼图结构的数据驱动功能已经被加入,所以我会开始更新相关教程。这期,我们将讲解拼图结构的生成需要的文件。
https://klpbbs.com/static/image/hrline/line5.png
拼图结构
为了生成一个拼图结构,我们需要在行为包根目录的 worldgen 文件夹下创建一个 jigsaw_structures 文件夹,并在其中定义拼图结构。示例如下。{
"format_version": "1.21.20",
"minecraft:jigsaw": {
"description": {
"identifier": "complementary:debug_hallway"
},
"heightmap_projection": "world_surface",
"start_height": 10,
"start_pool": "",
"max_depth": 5,
"step": "underground_structures",
"terrain_adaptation": "none",
"biome_filters": {}
}
}以下是这些字段的描述。
字段功能描述类型
identifier拼图结构的ID。字符串
heightmap_projection用于计算相对起始高度的高度图。字符串
start_height拼图结构开始生成的高度,配合heightmap_projection使用。整数
start_pool生成拼图结构时使用的第一个模板池。字符串
max_depth范围是。拼图结构生成的最大递归深度。整数
step拼图结构要在哪个世界生成阶段生成。字符串
terrain_adaptation可选,地形应该如何适应生成的拼图结构。字符串
biome_filters可选,拼图结构可以生成的生物群系。此项与地物文件中的同名字段写法一致。列表或对象
https://klpbbs.com/static/image/hrline/line3.png
参数解释
| 生成高度
| heightmap_projection
这个字段用于确定生成拼图结构时,开始计算的高度。有两个选项,分别是ocean_floor和world_surface。假设start_height为0,填写ocean_floor时,拼图结构从海平面开始生成;填写world_surface时,拼图结构从地表开始生成。
| start_height
这个字段用于决定拼图结构生成高度的偏移量,填写正数会让拼图结构从上方生成,负数同理。例如,heightmap_projection填写ocean_floor,而且start_height填写10,拼图结构将在海平面10格以上开始生成。
| 生成规模
| max_depth
这个字段用于确定生成的拼图结构的规模。原文档给出的解释为“例如,生成一个max_depth为5的放置道路的拼图结构,在从原点开始的任何给定方向上,道路长度最多为5个结构模板”。也可以参考上期附加包教程中关于拼图结构规模的描述。
| 生成阶段
| step
这个字段用于确定拼图结构应该在哪个世界生成阶段被放置,会影响处理器对方块的判断。
生成一个存档时,首先根据种子生成石头地形,然后在底层的石头变成深板岩,在顶层的石头根据生物群系变成草方块和泥土之类的方块,给低洼的地方填上水,接下来会生成矿石、各种岩石、湖和涌泉,然后是要塞,结构和地物,最后是一些植被和生物群系特性。(这里写的生成顺序不一定正确。)
那么这个拼图结构要在哪个生成阶段被放置?这就可以用这个字段指定。所有可用值和描述如下,描述根据值的翻译填写,可能不正确。值根据首字母顺序排列。
值描述
fluid_springs涌泉
lakes湖
local_modifications本地修改
raw_generation原始生成
strongholds要塞
surface_structures地表结构
top_layer_modification顶层修改
underground_decoration地下装饰
underground_ores地下矿物
underground_structures地下结构
vegetal_decoration植被装饰
| 地形适应
| terrain_adaptation
这个字段用于放置拼图结构后使其适应地形,可以指定掩埋一个拼图结构,此时使用地形方块覆盖整个拼图结构。例如生成的要塞如果正好暴露在大型洞穴下,会在要塞周围生成一圈石头(石头会正常地变为矿石和其他岩石),防止要塞暴露在外。虽然要塞不是拼图结构,这个字段的功能仍然与其相似。
以下就是所有可选的处理类型。
值描述
beard_box向上递减
beard_thin从地面向上递减
bury掩埋但露出一部分
encapsulate完全包围
none无
以下是这些值的解释。(注:环境方块就是那里的地形方块,比如石头。这里的密度可能是指方块的厚度。)
bury:环境方块密度将被添加到结构的所有部分,但仅在其起始部分的 Y 边界内。用于需要整体埋在地表之下,但起始结构模板露出地面的结构,例如古迹废墟。
beard_thin:环境方块密度将被添加到结构下面,而在地面以上,方块密度将被降低。
beard_box,环境方块密度将被添加到结构的下面,并且在该结构占据的整个盒子内,方块密度会被减少。该结构所占据的整个盒子内的块密度将被减少。
encapsulate:用方块包围结构的每一部分。
https://klpbbs.com/static/image/hrline/line9.png
原版示例
以下是原版的古迹废墟的定义文件,作为参考。我也会在下面附上解释。
{
"format_version": "1.21.20",
"minecraft:jigsaw": {
"description": {
"identifier": "minecraft:trail_ruins"
},
"biome_filters": [
{
"test": "has_biome_tag",
"operator": "==",
"value": "has_structure_trail_ruins"
}
],
"step": "underground_structures",
"terrain_adaptation": "bury",
"start_pool": "minecraft:trail_ruins/tower",
"max_depth": 7,
"start_height": -15,
"heightmap_projection": "world_surface"
}
}
这个文件定义了古迹废墟拼图结构,它会在有 has_structure_trail_ruins 标签的生物群系生成。在地下结构放置过程中,它会生成,而且使用了掩埋的地形适应选项。它的最大递归深度是 7,从世界表面向下 15 格开始生成,这就是为什么这个结构通常被埋在地下。最后,它使用 minecraft:trail_ruins/tower 这个模板池作为起始模板池,也就是生成的第一个结构从这个模板池中选择。
注意,目前只有古迹废墟和试炼密室可以用 JSON 修改,其他的拼图结构使用的是旧版拼图结构系统,不能更改。
https://klpbbs.com/static/image/hrline/line8.png
后记
这一期,我初步讲解了拼图结构文档。在 1.21.50 版本包中出现了 worldgen 文件夹,推测拼图结构相关文件应该放在这个文件夹里。事实证明,我的推测是正确的。如果把相关文件放在正确的文件夹中,在 1.21.50.26 版本中,拼图结构就可以正常生成了。下期介绍拼图结构集。
第四十九期 第五十期 第五十一期 看起来……好晕啊 感谢楼主教程[哔哩_打call]
页: [1]