创建第一个枪包
创建第一个枪包
起一个命名空间
在正式开始之前,你需要为你的枪包起一个全新的 命名空间
如果你还不知道什么是命名空间,请参见 章节:在开始之前#命名空间
为了方便教学,我们将以 tutorial
作为示例命名空间,在实际枪包制作中,你应该将其替换为你自己的命名空间
创建第一个枪包
一个最简单的枪包,需要一个根文件夹、一个资源包文件夹、一个数据包文件夹和一个 枪包元数据文件
同时,你需要在 资源包文件夹 和 数据包文件夹 下放置你的 命名空间文件夹
作为示范,本教程创建了一个根文件夹为tutorial_gun_pack
的枪包,其命名空间为tutorial
,我们在此后的教程中都会以它为示例,其文件结构如下:
└─tutorial_gun_pack # 根目录,也即压缩包的文件名
├─assets # 客户端资产/资源包文件夹,相当于一个资源包
│ └─tutorial # 命名空间文件夹,此目录下的所有资产命名空间都将是 “tutorial”
├─data # 服务端数据/数据包文件夹,相当于一个数据包
│ └─tutorial # 命名空间文件夹,此目录下的所有资产命名空间都将是 “tutorial”
└─gunpack.meta.json # 枪械包元数据文件,用来标识这是一个枪包
以下是它们的详细说明:
枪包元数据文件
枪包元数据文件 为置于根目录下的固定名为 gunpack.meta.json
的文件,此文件名 不可修改
它用来告诉模组这是一个枪包,同时也用来放置前置信息
具体内容如下:
{
// 填写你枪包的命名空间
"namespace": "tutorial",
// 可选,声明依赖的模组的版本范围,如果任一项不满足,则枪包不会加载
"dependencies": {
"tacz": "[1.1.4,)"
}
}
如果你要删掉"dependencies"这一项,记得把上面一行的逗号也删掉,否则会无法读取,正确的删法应该像这样:
{
"namespace": "tutorial"
}
根文件夹
根文件夹 的名字可以随意取,这也是你分发时最外层文件夹/压缩包的名字。
尽量不要使用太过大众的命名,以免与其他枪包产生文件名冲突。
资源包文件夹
资源包文件夹 存放了所有客户端资产,如模型、贴图、动画、语言文件等,这是一个标准的资源包结构,可以使用资源包的全部功能
关于原版资源包,请参考 Minecraft Wiki: 资源包, 其中的assets/
目录和枪包中的assets/
目录是完全一样的,不同点是你没有必要在枪包中创建pack.mcmeta
文件
数据包文件夹
资源包文件夹 存放了所有服务端资产,如配方、标签、或是枪械数据配置(比如伤害、射速、使用什么弹药)等,这是一个标准的数据包结构,可以使用数据包的全部功能
关于原版数据包,请参考 Minecraft Wiki: 数据包, 其中的data/
目录和枪包中的data/
目录也是完全一样的,同样的,你也没有必要在枪包中创建pack.mcmeta
文件
命名空间文件夹
命名空间文件夹决定了该目录下所有内容的命名空间
命名空间决定了你的枪包中定义的配件、枪械、配方的完整注册名和各种资源的资源路径。
例如,假设你的枪包命名空间为abc
,那么在这个命名空间文件夹中,textures/rua.png
这一贴图文件的资源路径即为abc:rua
同样的,这个命名空间下定义的名为ak47
的枪械的 完整注册名 将为abc:ak47
,这将与默认枪包的tacz:ak47
有所区分
你也可以使用其他枪包定义的枪械、配件和资源文件,例如,在命名空间为def
的枪包中,你可以用abc:rua
这个注册名调用abc
枪包中的textures/rua.png
。
注意
一个枪包一般应该有且仅有一个命名空间,且你绝对不应该使用已有的命名空间,如tacz的默认命名空间tacz
,除了一些特殊情形下我们需要修改一些其他命名空间中的特定内容
这部分内容将在 章节: 枪械改装支持 中详细说明