Loom предоставляет DSL для настройки системного свойства групп classpath загрузчика Fabric. Это позволяет Fabric Loader группировать различные записи classpath, что полезно для модификаций, которые разделяют свой код на несколько наборов исходных кодов, таких как клиентский и общий код или общий и платформенный код. Это может быть важно для обеспечения правильной загрузки ресурсов ваших модов. Если у вас есть один мод, созданный из нескольких наборов исходных кодов, вам следует определить все наборы исходных кодов в блоке loom.mods, чтобы Fabric Loader мог правильно сгруппировать их. Эта функция применяется только при запуске игры в вашей среде разработки и не влияет на окончательный мод jar, созданный вашей сборкой (т.к. все упаковано в один jar).
groovy
loom {
mods {
"example-mod" {
sourceSet sourceSets.main
sourceSet sourceSets.client
}
}
}1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
В приведенном выше примере example-mod скомпилирован из двух наборов исходных кодов: main и client. Loom настроит Fabric Loader для группировки этих наборов источников в одной группе classpath, обеспечивая их правильную загрузку во время выполнения.
groovy
loom {
mods {
"example-mod" {
sourceSet sourceSets.main
sourceSet sourceSets.client
}
"example-mod-test" {
sourceSet sourceSets.testmod
}
}
}1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
В приведенном выше примере example-mod-test скомпилирован из одного набора исходных кодов: testmod. Loom настроит Fabric Loader так, чтобы сгруппировать этот набор источников в своей собственной группе classpath, отдельно от example-mod.
Подпроекты
Если вы хотите определить модификации, охватывающие несколько проектов Gradle (что часто встречается в мультиплатформенных установках), вы можете сделать это, указав имя набора источников и путь к проекту.
groovy
loom {
mods {
"example-mod" {
sourceSet sourceSets.main
sourceSet("main", ":core")
}
}
}1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Если проект, от которого вы зависите, не использует Loom, вы должны применить плагин net.fabricmc.fabric-loom-companion к этому проекту. Это позволяет проекту loom получать доступ к необходимым данным в соответствии с лучшими практиками Gradle. Этот плагин предоставляет только необходимую информацию для групп classpath и не применяет никаких других функций Loom.
groovy
plugins {
id 'net.fabricmc.fabric-loom-companion'
}1
2
3
2
3
Затененные зависимости
Если вы затеняете зависимости в своем моде jar, вам также следует определить конфигурацию, содержащую затененные зависимости, в блоке loom.mods. Это гарантирует, что Fabric Loader сможет правильно сгруппировать затененные зависимости с кодом вашего мода. Не следует делать это для других зависимостей мода или зависимостей, которые вы объединяете с помощью include.
groovy
loom {
mods {
"example-mod" {
sourceSet sourceSets.main
configuration configurations.shade
}
}
}1
2
3
4
5
6
7
8
2
3
4
5
6
7
8

