plugins { id 'idea' id 'java' id 'maven-publish' id 'dev.architectury.loom' id 'flywheel.java' id 'flywheel.package-infos' id 'flywheel.subproject' id 'flywheel.platform' id 'flywheel.jar-sets' id 'flywheel.transitive-source-sets' } transitiveSourceSets { compileClasspath = sourceSets.main.compileClasspath create('api') { rootCompile() } create('lib') { rootCompile() compile sourceSets.api } create('backend') { rootCompile() compile sourceSets.api, sourceSets.lib } sourceSet(sourceSets.main) { implementation sourceSets.api, sourceSets.lib, sourceSets.backend } createCompileConfigurations() } platform { commonProject = project(':common') sources sourceSets.api, sourceSets.lib, sourceSets.backend, sourceSets.main compileWithCommonSourceSets() setupLoomMod() setupLoomRuns() setupFatJar() publishMod() publishRemap(apiArtifactId, jarSets.createJars('api', sourceSets.api, sourceSets.lib)) } defaultPackageInfos { sources sourceSets.api, sourceSets.lib, sourceSets.backend, sourceSets.main } dependencies { modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" modApi "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" modCompileOnly "maven.modrinth:sodium:${sodium_version}" modCompileOnly "maven.modrinth:iris:${iris_version}" forApi project(path: ':common', configuration: 'commonApiOnly') forLib project(path: ':common', configuration: 'commonLib') forBackend project(path: ':common', configuration: 'commonBackend') forMain project(path: ':common', configuration: 'commonImpl') }