Polymerium
实例管理

包分组与覆盖顺序

理解整合包组、配方组、集合与散装包,以及重复包如何按分组优先级决定部署结果。

Last updated on

实例配置页中的包按来源归入分组。整合包组、配方组和集合共用这套机制,没有来源分组的包则归入散装组(loose group)。分组既方便整组管理,也决定多个组包含同一个包时,部署最终采用哪一份。

本页讲如何管理已经进入实例的包条目。资源仓库、引用、版本与文件的基础关系,先看包;要先把内容加入实例,可以从添加模组或导入与导出开始。

四种包归属

归属如何形成适合什么用途
整合包组包保留其在线整合包来源关联保留整合包提供的包清单,并在其上叠加自己的选择
配方组将配方应用到实例后,新增条目关联该配方把可复用的包清单加入实例
集合将包移入一个命名集合在当前实例内按用途整理包
散装组包不关联整合包、配方或集合单独添加包,或为已有分组提供优先采用的个人选择

每个包条目只有一种归属,但同一项目可以在不同组中各有一个条目,甚至选择不同版本。每个条目的版本、启用状态和标签分别保留。标签可以跨组使用,也可以有多个;参见标签与批量操作。

配方本身是独立保存、可分享的包引用清单;配方组是它应用到某个实例后的包条目。集合则只有实例内的名称和成员,没有独立清单。同名集合会合并成一组。创建与转换操作分别见配方和集合。

整合包也是分组来源

在线整合包提供的包可以形成整合包组,与你添加的配方组、集合和散装包一起参与覆盖。这里的“整合包组”指包条目的来源归属;整合包还可能携带 Minecraft 版本、模组加载器和配置文件,这些内容有各自的管理方式。

导入方式会影响你看到的分组。例如,从本地文件导入没有在线来源关联的 CurseForge 或 Modrinth 整合包时,其包引用会归入以整合包命名的集合。Trident 格式可以携带已有分组,因此一个导入的整合包也可能呈现为多个组。只有文件、没有受管理包引用的内容不会凭空变成组内条目。详见导入与导出。

散装组在哪里?

单独添加且没有来源关联的包显示在列表末尾,没有组头,这部分就是散装组。将包移出集合或解散可解散的组,也会使包回到这里。

散装组不参与分组拖动排序,部署优先级始终高于所有有来源的分组。因此,把一个散装包移入集合,或者把组内包变回散装包,都可能改变它与其他组中同一项目的覆盖关系。

重复包如何部署

不同组可以保留同一个项目的引用。部署时,Polymerium 按分组优先级选择生效条目,被覆盖的条目仍保留在实例配置中,不会因为这次没有部署就被删除。

选择分两步进行:

  1. 同一项目择一。 对同一资源仓库中同一项目的多个条目,采用优先级最高的一个,包括它选择的版本。
  2. 同一目标路径择一。 如果剩余包仍要写入同一个部署路径,再按相同优先级选出一个。

覆盖不会合并两个版本的内容,也不等于让 Minecraft 同时加载它们。来自不同资源仓库的两个同名项目不会仅凭名称被认作同一项目;如果它们也不指向同一路径,仍可能同时部署,需要自行检查兼容性。

禁用的条目不参与选择。 禁用一个高优先级条目后,较低优先级组中仍启用的同项目条目可能重新生效。要停用该项目,需要检查各组中的条目。

分组顺序与优先级

手动调整顺序

在配置页,打开组头菜单,使用提升组优先级或降低组优先级。也可以用鼠标拖动组头,在调整组顺序面板中放到目标位置。

实际改变顺序时,Polymerium 会保存当前所有有组头分组的顺序。在这份已保存的顺序中,越靠后优先级越高:提升优先级会使组向列表下方移动,降低优先级则向上移动。散装包固定在末尾,仍具有最高优先级。这决定的是部署采用哪个包,不是游戏内的模组加载顺序。

例如,把当前各组手动排成下面的顺序。假设条目都已启用,来自同一资源仓库的同一个地图模组项目,且没有部署规则跳过它们:

配置页从上到下地图模组版本本次部署
整合包组1.0被覆盖,保留条目
配方组1.1被覆盖,保留条目
“个人调整”集合1.2被覆盖,保留条目
散装包(无组头)1.3采用 1.3

如果禁用散装的 1.3,下一次部署采用集合中的 1.2。再把该集合移到配方组之前,部署就采用配方组中的 1.1。采用哪个版本由优先级决定,不是自动选择版本号最大的一个。

没有手动排序时

尚未保存顺序的分组有默认规则。完整的部署优先级从高到低为:

优先级条目归属
最高散装包
其次已纳入保存顺序的分组,越靠后越优先
再次未纳入保存顺序、且不属于实例当前关联整合包的其他分组
最低未纳入保存顺序的当前整合包组

“当前整合包”指实例关联的整合包来源。当前整合包组一旦纳入手动排序,就按保存的组顺序参与覆盖,不再固定处于最低级。

默认显示时,未排序的组按配方、整合包、集合排列,散装包在最后;已排序的组显示在未排序的组之前。这套默认显示顺序不能直接当作部署优先级。 例如,两个尚未排序的配方组包含同一项目时,如果没有更高优先级条目胜出,就会因优先级相同而产生冲突。

之后新加入的组也可能尚未纳入保存顺序。需要让它参与确定的覆盖顺序时,再调整一次组顺序,将当前各组一起保存。

出现冲突时

如果最高优先级仍有多个条目并列,部署会报冲突,不会随机挑选。跨组冲突可以通过调整组顺序解决;同一组内不同包占用同一路径时,需要移除或禁用冲突条目,或用部署规则为适合的包设置不同目标路径。仅调整组内显示位置不能为这些包建立不同的组优先级。

整组操作会改变什么

点击组头可以展开或折叠;组头菜单提供整组操作。折叠只影响显示,折叠的包仍按其启用状态参与部署。

操作结果
启用整组 / 禁用整组将该组所有成员分别设为启用或禁用
查看详情打开关联配方或整合包的详情;集合没有独立详情对象
解散组保留包条目,清除分组归属,使它们成为最高优先级的散装包
移除组从实例配置中删除该组的包条目

实例当前关联的整合包组不能直接解散或移除。集合重命名、移入移出包以及集合与配方的转换,见集合。

分组与文件分层的边界

组顺序决定包与包之间如何取舍。配置文件等资产仍按目录模型中整合包源(import/)、本地保留(persist/)和运行目录(build/)的规则处理。提高整合包组优先级不会顺带提高其配置文件的目录优先级,也不会改变 Minecraft 版本或模组加载器。

On this page