此实用程序模组适用于 Neoforge、Forge、Fabric 和 Quilt,非常适合任何想要创建自定义拼图结构但希望快速生成结构或将所有 NBT 部件整齐排列的模组开发者或数据包制作者。它还提供了生成配置特征(configuredfeatures)和放置特征(placedfeatures)的方法,以便更轻松地调试它们。
本模组的功能是创建了 /spawnstructure、/spawnpieces、/spawnfeature/ 和 spawnplacedfeature 命令供您使用。这些命令的完整参数如下:
/spawnstructure
- 生成结构的位置。可以使用 ~ ~ ~ 在您当前位置生成,或使用 ~50 ~ ~ 在距离您 50 格远的位置生成。
- 用于开始结构生成的模板池路径。对于原版平原村庄,这将是 "minecraft:village/plains/town_centers",即村庄的起始池。您可以选择其他池进行测试目的。这是唯一必需的参数。所有其他参数均为可选。
- 拼图结构应从起始部件向外生成多少个部件。可以将其理解为分支的长度,而不是结构中部件的总数。村庄的深度为 6。
- 结构是否应在地表最高处生成,还是在玩家所在位置生成。
- 特殊的内部规则,用于调整部件的边界框。对于村庄正确生成,此项必须为 true。所有其他结构应将此项设为 false。
- 是否在此结构生成过程中关闭结构处理器。处理器通常用于随机化结构的方块,或根据条件替换方块,例如村庄道路进入水中时变为木板。
- 如果为 true,游戏将发送一个数据包尝试让玩家重新加载所有可见区块。如果关闭,可能会显著提升性能,但如果结构或特征以非常奇怪的方式放置方块,这些方块可能直到区块重新加载后才会显示。例如,minecraft:forest_rock 特征放置方块时不会向客户端发送变更。大多数特征和结构都没问题,可以将 sendchunklightingpacket 设置为 false。(默认值为 false)
- 如果您希望每次在任何地方运行命令时都重复生成相同的结构布局,请使用此项并传入种子。这对于测试您是否修复了结构中某个部件无法生成的问题非常有用。
(仅限 1.20.4+ 版本)/fillstructurevoid
- 从您站立位置向外扩展的球体大小。球体内的空气将被替换为结构虚空。它通过递归扩散来实现,因此不会替换房屋内部或封闭空间内的空气。适合快速粗略地用结构虚空填充房屋外部。与“结构虚空切换(Structure Void Toggle)”模组配合使用效果最佳。
(仅限 1.18 版本)spawnrawstructure
- 生成结构的位置。可以使用 ~ ~ ~ 来生成。注意:ConfiguredStructures 可能会忽略此参数的 Y 值,请注意这一点。例如,海底神殿总是生成在海平面以下。
- 要生成的 ConfiguredStructure。注意,许多结构具有特殊的硬编码内部检查,可能会阻止生成。例如,如果末地城所在位置的陆地低于 60,则不会生成;沙漠神庙和丛林神庙不会在海平面或海平面以下生成;其他结构可能有更严格的检查。生物群系检查已被绕过,对于许多原版结构,我添加了代码以绕过它们的许多严格检查,例如执行此命令时矿道总是会生成。模组添加的结构可能具有极其严格的检查从而阻止生成。此参数是必需参数。此参数之后的其余参数均为可选。
- 是否将结构的边界保存到区块本身。此边界用于触发进度、随时间生成特定结构的生物(如守卫者和掠夺者),以及各种其他与边界相关的事物。
- 如果为 true,游戏将发送一个数据包尝试让玩家重新加载所有可见区块。如果关闭,可能会显著提升性能,但如果结构或特征以非常奇怪的方式放置方块,这些方块可能直到区块重新加载后才会显示。例如,minecraft:forest_rock 特征放置方块时不会向客户端发送变更。大多数特征和结构都没问题,可以将 sendchunklightingpacket 设置为 false。(默认值为 true)
- 如果您希望每次在任何地方运行命令时都重复生成相同的结构布局,请使用此项并传入种子。这对于测试您是否修复了结构中某个部件无法生成的问题非常有用。
/spawnpieces <spacing (1.20.4+)>
- 搜索所有要在网格中生成的 NBT 部件的路径。此命令也可以针对单个 NBT 部件。这是唯一必需的参数。所有其他参数均为可选。
- 开始放置部件的位置。默认为 ~ ~ ~,即玩家站立的位置。
- 是否自动将每个生成的 NBT 部件保存到世界存档文件夹中的"generated"文件夹内。
- 在 NBT 部件下方放置的地板方块。通常是屏障方块或石头。
- 用于清理 NBT 部件区域的方块。此处常用的方块是空气或结构虚空。
- 在开始下一行部件之前,每行应放置多少个 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)