创建第一个枪包
创建第一个枪包
一个最简单的枪包,需要一个 根文件夹、一个 命名空间文件夹、一个 枪包描述文件
作为示范,本教程创建了一个根文件夹为tutorial_gun_pack
,命名空间为tutorial
的枪包,我们在此后的教程中都会以它为示例
其文件结构如下:
tutorial_gun_pack
└─ tutorial
└─ pack.json
以下是它们的详细说明:
根文件夹
根文件夹 的名字可以随意取,这也是你分发时最外层文件夹/压缩包的名字。
尽量不要使用太过大众的命名,以免与其他枪包产生文件名冲突。
命名空间文件夹
命名空间文件夹 决定了该目录下所有内容的 命名空间
命名空间决定了你的枪包中定义的配件、枪械、配方的完整注册名和各种资源的资源路径。
例如,假设你的枪包命名空间为 abc
,那么在这个命名空间文件夹中,textures/rua.png
这一贴图文件的资源路径即为 abc:rua
。
同样的,这个命名空间下中定义的名为 ak47
的枪械的完整注册名将为 abc:ak47
,这将与默认枪包的 tacz:ak47
有所区分。
你也可以使用其他枪包定义的枪械、配件和资源文件,例如,在命名空间为 def
的枪包中,你可以用 abc:rua
这个注册名调用 abc
枪包中的 textures/rua.png
。
注意
一个枪包一般应该有且仅有一个命名空间,且你绝对不应该使用已有的命名空间,如tacz的默认命名空间tacz
,除了一些特殊情形下我们需要修改一些其他命名空间中的特定内容
这部分内容将在 章节: 枪械改装支持 中详细说明
关于 命名空间 这一概念的更详细说明,参见Minecraft Wiki: 命名空间ID#命名空间的解释
枪包描述文件
枪包描述文件 为置于命名空间目录下的固定名为 pack.json 的文件,此文件名 不可修改
以下是枪包描述文件的详细定义
{
// 版本
"version": "1",
// 名称,支持在语言文件中定义
"name": "pack.tutorial.name",
// 描述文本,支持在语言文件中定义
"desc": "pack.tutorial.desc",
// 许可证
"license": "CC BY-NC-ND 4.0",
// 作者
"author": [
"MaydayMemory"
],
// 日期:ISO 8601 标准,即 YYYY-MM-DD
"date": "2024-04-20"
}
可以注意到,在枪包描述文件里,我们使用了语言文件来定义枪包名称和描述文本。下一章中,我们将解析如何 创建并使用语言文件