命令结构

命令结构

通过命令生成拼图结构!

工具

这个工具模组适用于 Neoforge、Forge、Fabric 和 Quilt,非常适合任何想要创建自定义拼图结构(jigsaw structures)但希望快速生成结构或将所有 NBT 部件整齐排列的模组开发者或数据包制作者。它还提供了一种生成 configured features 和 placed features 的方式,使调试更加容易。

 

这个模组的功能是添加了 /spawnstructure、/spawnpieces、/spawnfeature/ 和 spawnplacedfeature 命令供你使用。命令的完整参数如下:

 

/spawnstructure

- 生成结构的位置。可以使用 ~ ~ ~ 在你当前位置生成,或使用 ~50 ~ ~ 在离你 50 格远的地方生成。

- 用于开始结构生成的模板池(template pool)路径。对于平原 vanilla 村庄,这里是 "minecraft:village/plains/town_centers",即村庄的起始池。你也可以选择其他池进行测试。这是唯一必需的参数。所有其他参数都是可选的。

- 拼图结构应从起始部件向外生成多少个部件。可以理解为分支的长度,而不是结构中部件的总数。村庄的深度是 6。

- 结构应在陆地表面生成还是在你所处的位置生成。

- 一个特殊的内部规则,用于处理部件的边界框。要使村庄正常生成,此选项必须为 true。所有其他结构应将其设为 false。

- 是否在本次结构生成中关闭结构处理器。处理器通常用于随机化结构的方块或根据条件替换方块,例如村庄道路进入水中时变成木板。

- 如果为 true,游戏将发送数据包以尝试让玩家重新加载所有可见区块。如果关闭,可能会显著提升性能,但如果结构或特性以非常规方式放置方块,这些方块可能直到区块重新加载后才显示出来。例如,minecraft:forest_rock 特性放置方块时不会向客户端发送更改。大多数特性和结构都没问题,可以将 sendchunklightingpacket 设为 false。(默认为 false)

- 如果你想在任何地方重复生成相同的结构布局,可以使用此参数并传入一个种子。这对于测试你是否修复了结构中某个部件未生成的问题非常有用。

 

 

(仅限 1.20.4+) /fillstructurevoid

- 从你所站位置向外的球体大小。球体中的空气将被替换为 structure void。它是通过递归扩展的方式进行的,因此不会替换房屋内部或封闭空间中的空气。非常适合快速粗略地用 structure void 填充房屋外部。与 Structure Void Toggle 模组搭配使用效果最佳。

 

 

(仅限 1.18) spawnrawstructure

- 生成结构的位置。可以使用 ~ ~ ~ 生成。注意:ConfiguredStructures 可能会忽略此参数的 y 值,请注意这一点。例如,海洋 monument 总是在海平面以下生成。

- 要生成的 ConfiguredStructure。注意,许多结构有特殊的硬编码内部检查,可能会阻止生成。例如,如果生成点下方的土地低于 60,末地城不会生成;沙漠神殿和丛林神庙不会在海平面或以下生成;其他结构可能有更严格的检查。生物群系检查已被绕过,对于许多 vanilla 结构,我已添加代码来绕过它们的许多严格检查,例如,使用此命令时矿井总是会生成。模组结构可能有极其严格的检查阻止生成。此参数是必需的。此参数之后的其他参数是可选的。

- 是否将结构的边界保存到区块本身。此边界用于触发进度、随时间为结构生成特定生物(如守卫者和掠夺者)以及各种其他与边界相关的事情。

- 如果为 true,游戏将发送数据包以尝试让玩家重新加载所有可见区块。如果关闭,可能会显著提升性能,但如果结构或特性以非常规方式放置方块,这些方块可能直到区块重新加载后才显示出来。例如,minecraft:forest_rock 特性放置方块时不会向客户端发送更改。大多数特性和结构都没问题,可以将 sendchunklightingpacket 设为 false。(默认为 true)

- 如果你想在任何地方重复生成相同的结构布局,可以使用此参数并传入一个种子。这对于测试你是否修复了结构中某个部件未生成的问题非常有用。

 

 

/spawnpieces <spacing (1.20.4+)>

- 要搜索的路径,用于以网格形式生成其下的所有 NBT 部件。此命令也可以定位单个 NBT 部件。这是唯一必需的参数。所有其他参数都是可选的。

- 开始放置部件的位置。默认是 ~ ~ ~,即玩家站立的位置。

- 是否自动将生成的每个 NBT 部件保存到世界存档文件夹中的 "generated" 文件夹中。

- 放置在 NBT 部件所在位置地面上的方块。通常是 Barrier 方块或石头。

- 用于清除 NBT 部件区域的方块。通常选择的方块是空气或 Structure Void。

- 在开始下一行部件之前,每行应放置多少个 NBT 部件。

- 仅适用于 1.20.4 及更新版本。部件之间的间隔距离。

 

 

(仅限 1.18) /spawnfeature

- 要生成的 configuredfeature 的资源位置。请注意,某些特性有内部检查来判断位置是否有效,例如沙漠水井需要放置在沙子上。

- 生成 configuredfeature 的位置。

- 如果为 true,游戏将发送数据包以尝试让玩家重新加载所有可见区块。如果关闭,可能会显著提升性能,但如果结构或特性以非常规方式放置方块,这些方块可能直到区块重新加载后才显示出来。例如,minecraft:forest_rock 特性放置方块时不会向客户端发送更改。大多数特性和结构都没问题,可以将 sendchunklightingpacket 设为 false。(默认为 true)

 

 

(仅限 1.18) /spawnplacedfeature

- 要生成的 placedfeature 的资源位置。请注意,某些 placedfeature 有内部检查来判断位置是否有效或具有稀有度放置规则。例如,沙漠水井有 1/1000 的稀有度放置概率,因此你可能需要执行此命令约 1000 次后沙漠水井才会生成。

- 生成 placedfeature 的位置。注意:为了更好地模拟世界生成,此位置会将所在区块最底部的角落位置传递给 placedfeature。因此,使用此命令类似于正常的世界生成,只是不会进行生物群系检查。如果你的 placedfeature 包含 "minecraft:biome" 放置检查,它将被忽略,以便更容易调试,而不需要待在正确的生物群系中。

- 如果为 true,游戏将发送数据包以尝试让玩家重新加载所有可见区块。如果关闭,可能会显著提升性能,但如果结构或特性以非常规方式放置方块,这些方块可能直到区块重新加载后才显示出来。例如,minecraft:forest_rock 特性放置方块时不会向客户端发送更改。大多数特性和结构都没问题,可以将 sendchunklightingpacket 设为 false。(默认为 true)