Skip to content

命名与映射

This content is not available in your language yet.

Copper 模组在 Mindustry 的模组系统里以「原版模组」的身份出现,但名字并不是 copper.mod.json 里写的 id。本页把这层映射集中列出来——写依赖、拼 bundle 键、给贴图起文件名时都会用到。

规则只有一条:把 id 里的冒号换成连字符,前面加 copper-。

copper.mod.json 里的 id原版模组系统里的名字
example:examplemodcopper-example-examplemod
copper:core(核心模组)copper-copper-core

元数据里声明的依赖,翻译成原版模组系统的依赖时按下面处理:

dependencies 里写的 id对应的原版依赖
mindustry:<模组名><模组名>(原版模组自己的名字,不加前缀)
其他任何 id(含其他 Copper 模组)copper-<id 冒号换连字符>
copper:core不单独生成——每个 Copper 模组都自动依赖 copper-copper-core
mindustry / loader不生成(游戏本体与加载器由 Copper 自己检查)

所以要依赖一个原版 Mindustry 模组就写 mindustry:<模组名>,它进入原版依赖表时会被还原成那个模组本来的名字。类可见性上的额外要求见类隔离机制。

模组注册的内容(方块、物品、单位……)都会带上模组名作为前缀:

<模组名>-<你在代码里给的名字>

例如 example:examplemod 注册一个名为 myblock 的方块,内容名就是 copper-example-examplemod-myblock。

游戏显示这些内容时从全局 bundle 取文本,键由「内容类型 + . + 内容名 + 后缀」拼成:

键用途
block.copper-example-examplemod-myblock.name名称
block.copper-example-examplemod-myblock.description描述
block.copper-example-examplemod-myblock.details详情
block.copper-example-examplemod-myblock.credit致谢

内容类型就是原版的 ContentType 名:block、item、unit、liquid、status、weather、sector、planet、team 等。

这些键要写在游戏的全局 bundle 里,也就是模组的 assets/bundles/bundle_<语言>.properties,而不是 Copper 自己的 assets/copper/bundles/(区别见数据、设置与本地化 · 多语言本地化)。

放在 assets/sprites/ 下的图片,注册到 Atlas 时会自动加上 <模组名>- 前缀:

文件名注册出来的区域名
myblock.pngcopper-example-examplemod-myblock
block-copper-example-examplemod-myblock.png原样使用(见下)

内容图标按固定顺序查找,命中哪个就用哪个:

flowchart LR
    A["&lt;类型&gt;-&lt;内容名&gt;-full"] --> B["&lt;内容名&gt;-full"]
    B --> C["&lt;内容名&gt;"]
    C --> D["&lt;类型&gt;-&lt;内容名&gt;"]
    D --> E["&lt;内容名&gt;1"]

所以只写 myblock.png 也能显示(命中第三档),但要带上 -full 这类变体就应按第一档命名。

位置路径
模组的原版资源根Jar 内的 assets/
游戏显示的文本(全局 bundle)assets/bundles/bundle_<语言>.properties
贴图assets/sprites/
Copper 自己的资源(Mixin 配置等)assets/copper/
模组数据目录<数据目录>/copper/datas/<作者-模组名>/

<作者-模组名> 就是 id 把冒号换成连字符,与模组名用的是同一个串,只是不带 copper- 前缀。完整目录速查见数据、设置与本地化 · 文件目录速查。