179 lines
7.5 KiB
Groovy
179 lines
7.5 KiB
Groovy
plugins {
|
|
id "com.github.johnrengelman.shadow" version "7.1.2"
|
|
}
|
|
|
|
architectury {
|
|
platformSetupLoomIde()
|
|
fabric()
|
|
}
|
|
|
|
configurations {
|
|
common
|
|
shadowCommon
|
|
compileClasspath.extendsFrom common
|
|
runtimeClasspath.extendsFrom common
|
|
developmentFabric.extendsFrom common
|
|
}
|
|
|
|
dependencies {
|
|
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
|
mappings loom.officialMojangMappings()
|
|
|
|
modImplementation "net.fabricmc:fabric-loader:${project.fabric_loader_version}"
|
|
modApi "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
|
|
modImplementation "software.bernie.geckolib:geckolib-fabric-${project.minecraft_version}:${project.geckolib_version}"
|
|
modCompileOnly("curse.maven:intapi-${project.intapi_curseforge_id}:${project.intapi_curseforge_file_id_fabric}")
|
|
modLocalRuntime("curse.maven:intapi-${project.intapi_curseforge_id}:${project.intapi_curseforge_file_id_fabric}")
|
|
compileOnly "mezz.jei:jei-${project.minecraft_version}-common-api:${project.jei_version}"
|
|
compileOnly "mezz.jei:jei-${project.minecraft_version}-fabric-api:${project.jei_version}"
|
|
modLocalRuntime "mezz.jei:jei-${project.minecraft_version}-fabric:${project.jei_version}"
|
|
// compileOnly("curse.maven:create-${project.create_curseforge_id_neoforge}:${project.create_curseforge_file_id_neoforge}")
|
|
// compileOnly("curse.maven:marvel-${project.marvel_curseforge_id}:${project.marvel_curseforge_file_id}")
|
|
// compileOnly("curse.maven:stellaris-${project.stellaris_curseforge_id}:${project.stellaris_curseforge_file_id}")
|
|
// compileOnly("curse.maven:aperture-${project.aperture_curseforge_id}:${project.aperture_curseforge_file_id}")
|
|
// compileOnly("curse.maven:inventory_pets-${project.inventory_pets_curseforge_id}:${project.inventory_pets_curseforge_file_id}")
|
|
// compileOnly("curse.maven:cataclysm-${project.cataclysm_curseforge_id}:${project.cataclysm_curseforge_file_id}")
|
|
// compileOnly("curse.maven:iaf-${project.iaf_curseforge_id}:${project.iaf_curseforge_file_id}")
|
|
// compileOnly("curse.maven:backpack-${project.backpack_curseforge_id}:${project.backpack_curseforge_file_id}")
|
|
// compileOnly("curse.maven:regions_unexplored-${project.regions_unexplored_curseforge_id}:${project.regions_unexplored_curseforge_file_id}")
|
|
// compileOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.1+1.21.1-neoforge.jar"))
|
|
compileOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.2+1.21.1-neoforge.jar"))
|
|
runtimeOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.2+1.21.1-fabric.jar"))
|
|
// compileOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.1+1.21.1-neoforge-sources.jar"))
|
|
compileOnly(files("$rootDir/infinite_dimensions_jars/gravity-api-1.0.7-1.20.1.jar"))
|
|
// compileOnly(files("$rootDir/infinite_dimensions_jars/Cloro's Gravity Gun Mod (Release 1.3.1).jar"))
|
|
// compileOnly(files("$rootDir/infinite_dimensions_jars/VanillaBackport-neoforge-1.21.1-1.1.7.6.jar"))
|
|
// compileOnly(files("$rootDir/infinite_dimensions_jars/soul-fire-d-neoforge-1.21-6.1.0.jar"))
|
|
// compileOnly(files("$rootDir/infinite_dimensions_jars/prometheus-neoforge-1.21-1.2.5.jar"))
|
|
compileOnly(files("$rootDir/infinite_dimensions_jars/cloth-config-15.0.140-fabric.jar"))
|
|
compileOnly(files("$rootDir/infinite_dimensions_jars/sable-neoforge-1.21.1-2.0.3.jar"))
|
|
|
|
// Compile against the NeoForge jar (official Mojang mappings, matches this module's compile
|
|
// space) but load the real Fabric jar at runtime — sizeable_foliage's Fabric jar ships
|
|
// intermediary-mapped (Fabric's normal shipping format) which this compileOnly classpath
|
|
// can't resolve directly.
|
|
compileOnly(files("$rootDir/sizeable_foliage_jars/sizeable_foliage-neoforge-1.21.1-1.0.0.jar"))
|
|
runtimeOnly(files("$rootDir/sizeable_foliage_jars/sizeable_foliage-fabric-1.21.1-1.0.0.jar"))
|
|
|
|
annotationProcessor "org.spongepowered:mixin:0.8.7:processor"
|
|
common(project(path: ':common', configuration: 'namedElements')) { transitive false }
|
|
shadowCommon(project(path: ':common', configuration: 'namedElements')) { transitive false }
|
|
}
|
|
|
|
loom {
|
|
mixin {
|
|
useLegacyMixinAp = true
|
|
defaultRefmapName = "antarchy.refmap.json"
|
|
}
|
|
|
|
mods {
|
|
"${mod_id}" {
|
|
sourceSet sourceSets.main
|
|
sourceSet project(':common').sourceSets.main
|
|
}
|
|
}
|
|
|
|
runs {
|
|
configureEach {
|
|
runDir('run')
|
|
ideConfigGenerated(true)
|
|
}
|
|
|
|
client {
|
|
client()
|
|
setConfigName('Fabric Client')
|
|
}
|
|
|
|
server {
|
|
server()
|
|
setConfigName('Fabric Server')
|
|
programArg('--nogui')
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.named('compileJava', JavaCompile) {
|
|
source(project(':common').sourceSets.main.allJava)
|
|
}
|
|
|
|
tasks.named('javadoc', Javadoc).configure {
|
|
source(project(':common').sourceSets.main.allJava)
|
|
}
|
|
|
|
tasks.named('sourcesJar', Jar) {
|
|
from(project(':common').sourceSets.main.allSource)
|
|
exclude "antarchy-common.mixins.json"
|
|
}
|
|
|
|
shadowJar {
|
|
exclude 'architectury.common.json'
|
|
configurations = [project.configurations.shadowCommon]
|
|
archiveClassifier.set('dev-shadow')
|
|
}
|
|
|
|
remapJar {
|
|
injectAccessWidener = true
|
|
input.set shadowJar.archiveFile
|
|
dependsOn shadowJar
|
|
archiveClassifier.set(null)
|
|
}
|
|
|
|
jar {
|
|
archiveClassifier.set('dev')
|
|
}
|
|
|
|
components.java {
|
|
withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
|
|
skip()
|
|
}
|
|
}
|
|
|
|
processResources {
|
|
inputs.property "version", project.version
|
|
inputs.property "minecraft_version", project.minecraft_version
|
|
inputs.property "fabric_loader_version", project.fabric_loader_version
|
|
inputs.property "mod_id", project.mod_id
|
|
inputs.property "mod_name", project.mod_name
|
|
inputs.property "mod_description", project.mod_description
|
|
inputs.property "mod_author", project.mod_author
|
|
inputs.property "license", project.license
|
|
inputs.property "homepage_url", project.homepage_url
|
|
inputs.property "issues_url", project.issues_url
|
|
inputs.property "sources_url", project.sources_url
|
|
inputs.property "logo_fabric", project.logo_fabric
|
|
|
|
from(project(':common').sourceSets.main.resources) {
|
|
exclude "antarchy-common.mixins.json"
|
|
}
|
|
|
|
// Fabric needs a refmap on the common mixin config, NeoForge only boots without one.
|
|
// Generate a fabric-only copy with the refmap injected so the shared file stays refmap-free.
|
|
def commonMixinConfig = project(':common').file('src/main/resources/antarchy-common.mixins.json')
|
|
inputs.file commonMixinConfig
|
|
|
|
doLast {
|
|
def json = new groovy.json.JsonSlurper().parse(commonMixinConfig)
|
|
json.put('refmap', 'antarchy.refmap.json')
|
|
new File(destinationDir, 'antarchy-common-fabric.mixins.json').text =
|
|
groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(json))
|
|
}
|
|
|
|
filesMatching("fabric.mod.json") {
|
|
expand(
|
|
version: project.version,
|
|
minecraft_version: project.minecraft_version,
|
|
fabric_loader_version: project.fabric_loader_version,
|
|
mod_id: project.mod_id,
|
|
mod_name: project.mod_name,
|
|
mod_description: project.mod_description,
|
|
mod_author: project.mod_author,
|
|
license: project.license,
|
|
homepage_url: project.homepage_url,
|
|
issues_url: project.issues_url,
|
|
sources_url: project.sources_url,
|
|
logo_fabric: project.logo_fabric
|
|
)
|
|
}
|
|
}
|
|
|