核质体创建工具

核质体创建工具

用于处理和创建Nucleoid生态系统地图的工具

管理

Nucleoid Creator Tools

此模组实现了用于为 Nucleoid 生态系统生成游戏内容的各种工具。 此模组当前的主要功能是处理游戏地图创建。

创建地图

任何小游戏都需要一张地图来让游戏在其中进行。虽然有时小游戏可能想要程序化地生成地图,但在许多情况下,手工构建的地图更可取。

创建地图的第一步是打开地图工作区。地图工作区本质上只是一个你可以在其中进行建造的维度,之后可以将其导出为 Plasmid 可读取的地图模板文件。

可以通过运行以下命令打开一个空虚空地图工作区:/map open <id>(例如 /map open bedwars:cubes) 所需的 id 是你在 namespace:identifier 格式中的工作区唯一标识符。它应当全部为小写,且不能包含空格。

你还可以创建带有自定义区块生成器的工作区:/map open <id> like <dimension>(例如 /map open bedwars:nether like minecraft:nether)

在工作区之间进出

创建了工作区后,你需要在它们之间旅行。

这可以通过运行以下命令实现:/map join <id>,它会将你传送到该工作区维度中。 一旦你进入了工作区维度,你就可以自由地建造任何你想要的东西!

同样,也可以通过运行以下命令离开地图工作区并返回你之前的位置:/map leave。

设置地图边界

当导出要加载到游戏中的地图时,模组需要知道世界中应当包含的区域。这通过设置一个包围你地图的盒子来控制。

当你首次进入工作区时,你会注意到由粒子形成的盒子轮廓——这些就是你的地图边界!它们可以在工作区中通过运行以下命令进行更改:/map bounds <id> <corner_1> <corner_2>。

  • id 是要为其设置边界的工作区 id
  • corner_1 和 corner_2 是轴对齐包围盒的两个角

设置地图原点

大多数情况下,你不需要更改地图工作区的原点。不过,本质上,地图原点控制的是地图导出后对应于 (0; 0; 0) 的方块位置。如果你把地图建在了错误的位置,并想在游戏实际开始时移动它,这会很有用。

例如,如果你的地图高了 10 个方块,将原点设置为 (0; 10; 0) 将导致导出的地图向下移动 10 个方块。

这可以通过 /map origin <id> <origin> 设置

  • id 是要为其设置原点的工作区 id
  • origin 是要设置为原点的方块位置

设置原点时要小心,不要让你的地图超出边界!如果你将地图原点设置在地图边界较低 y 值以下的某个位置,那就意味着在导出的地图中,你的边界将会低于 y=0!

使用区域

拥有一张可加载用于小游戏的地图很有用,但游戏逻辑缺少关于地图的任何有用信息。例如,你的小游戏如何知道在哪里生成玩家,或者 bedwars 中某个特定队伍床的位置在哪里?

这就是区域的用武之地:区域只是地图中一个有名称的区域,可用于向游戏代码传达某个应当发生某些事情的区域。地图中可以有多个同名区域,或者同一位置有多个不同名称的区域。区域的命名有助于向游戏代码标识每个区域代表什么。

创建区域

要开始创建区域,请运行:/give @s nucleoid_creator_tools:add_region。这会给你 Add Region 物品,可用于通过选择两个角来轻松定义你世界中的区域。

通过对一个方块右键点击,应当会出现一个粒子盒。这会通过选择第一个角来开始定义区域的过程。现在,当你环顾四周时,盒子会变形以匹配第二个角。第二次右键点击会将当前注视的方块选为第二个角。

现在,你可以运行 /map region commit <marker>。这会将高亮区域以给定的 marker 添加到你的地图中,并且它应当会以不同颜色的粒子高亮显示。

使用 Add Region 物品选择区域时,你还可以通过潜行并右键点击来更改选择模式。它会在 3 种模式之间循环:

  • 偏移模式:高亮的方块是你正在注视的方块,并根据你注视它的那一侧进行偏移(类似于放置方块)
  • 精确模式:高亮的方块是你正在注视的精确方块(类似于破坏方块)
  • 脚部模式:高亮的方块是你脚部的方块

有用的区域命令

  • /map region rename all <old> <new>:将当前工作区中所有区域从 old 重命名为 new
  • /map region rename here <old> <new>:将当前工作区中所有与你玩家相交的区域从 old 重命名为 new
  • /map region remove here:从当前工作区中移除所有与你玩家相交的区域
  • /map region remove at <pos>:从当前工作区中移除所有与给定 pos 相交的区域

附加数据

向代码传达比区域更多的地图信息可能是可取的。这可以通过附加任意 NBT 数据来完成,代码之后可以访问这些数据。

数据既可以附加到区域,也可以附加到整个地图。

要处理特定区域上的数据,你的玩家必须与该区域的边界相交!

  • /map region data <marker> get:打印给定区域的数据
  • /map region data <marker> set <data>:设置给定区域的数据(这会覆盖任何先前存在的数据!)
  • /map region data <marker> merge <data>:将给定数据与给定区域上的现有数据合并

还可以将数据传递给区域提交命令:/map region commit <marker> <data>

要处理全局地图上的数据,命令的功能类似:

  • /map data get:打印附加到地图的数据
  • /map data set <data>:覆盖地图上的现有数据
  • /map data merge <data>:将给定数据与地图上的现有数据合并

导出地图

一旦你的地图完成,你会想将其导出为一个可由小游戏模组加载的文件。这可以简单地通过运行以下命令完成:/map export <id>。

导出的地图将被放置在 /nucleoid_creator_tools/exports/<namespace>/map_templates/<path>.nbt