Files
oc2r-gtceu/build.gradle
2025-10-31 18:55:16 +01:00

152 lines
4.3 KiB
Groovy

plugins {
id 'java'
id 'eclipse'
id 'idea'
id 'maven-publish'
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
id 'com.diffplug.spotless' version '7.0.2'
}
apply from: "$rootDir/gradle/scripts/spotless.gradle"
group = 'com.imbgt.oc2rgtceu'
version = mod_version
base {
archivesName = mod_id
}
java {
toolchain.languageVersion = JavaLanguageVersion.of(17)
}
minecraft {
mappings channel: mapping_channel, version: mapping_version
copyIdeResources = true
runs {
configureEach {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
mods {
"${mod_id}" {
source sourceSets.main
}
}
}
client {
property 'forge.enabledGameTestNamespaces', mod_id
}
server {
property 'forge.enabledGameTestNamespaces', mod_id
args '--nogui'
}
data {
workingDirectory project.file('run-data')
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
}
gameTestServer {
property 'forge.enabledGameTestNamespaces', mod_id
}
}
}
repositories {
mavenCentral()
maven { url = 'https://maven.minecraftforge.net' }
maven { url = 'https://maven.gtceu.com' }
maven { url = 'https://cursemaven.com' }
maven {
name = 'FirstDarkDev Maven'
url = 'https://maven.firstdarkdev.xyz/snapshots'
}
}
dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
implementation fg.deobf("com.gregtechceu.gtceu:gtceu-${minecraft_version}:${gtm_version}") { transitive = false }
implementation fg.deobf("com.lowdragmc.ldlib:ldlib-forge-${minecraft_version}:${ldlib_version}") { transitive = false }
implementation fg.deobf("curse.maven:oc2r-1037738:7006439")
implementation fg.deobf("curse.maven:markdownmanual-502485:4873115")
}
tasks.register('generateTestRom', Zip) {
archiveFileName = 'test_rigs.zip'
destinationDirectory = layout.buildDirectory.dir('generated/rom')
from('src/test/lua') {
into 'oc2rgtceu/tests'
}
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
options.release = 17
}
sourceSets.main.resources {
srcDir 'src/generated/resources'
}
tasks.named('processResources', ProcessResources).configure {
dependsOn(tasks.named('generateTestRom'))
from(tasks.named('generateTestRom').map { it.archiveFile }) {
into 'data/oc2rgtceu/file_systems'
rename { 'test_rigs.zip' }
}
}
jar {
from('LICENSE') { into('META-INF') }
manifest {
attributes(
'Specification-Title': mod_id,
'Specification-Version': version,
'Specification-Vendor': mod_authors,
'Implementation-Title': project.name,
'Implementation-Version': version,
'Implementation-Vendor': mod_authors
)
}
}
tasks.named('processResources', ProcessResources).configure {
var replaceProperties = [
minecraft_version : minecraft_version,
minecraft_version_range: minecraft_version_range,
forge_version : forge_version,
forge_version_range : forge_version_range,
loader_version_range : loader_version_range,
mod_id : mod_id,
mod_name : mod_name,
mod_license : mod_license,
mod_version : mod_version,
mod_authors : mod_authors,
mod_description : mod_description,
gtm_version : gtm_version,
oc2r_version : oc2r_version,
pack_description : pack_description,
pack_format : pack_format,
]
inputs.properties replaceProperties
filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) {
expand replaceProperties
}
}
tasks.register('printHint') {
group = 'help'
description = 'Prints guidance on wiring local project dependencies.'
doLast {
logger.lifecycle("Configure dependency coordinates for GregTech CEu and OC2R before building.")
}
}