83 lines
2.6 KiB
Groovy
83 lines
2.6 KiB
Groovy
plugins {
|
|
id 'net.fabricmc.fabric-loom' version "${loom_version}"
|
|
id 'maven-publish'
|
|
id 'org.jetbrains.kotlin.jvm' version "${kotlin_version}"
|
|
}
|
|
|
|
version = "${mod_version}"
|
|
group = project.maven_group
|
|
|
|
base {
|
|
archivesName = "lattice-${project.minecraft_version}-fabric"
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
// 26.1.2 is non-obfuscated: fabric-loom without remapping, no mappings dependency.
|
|
dependencies {
|
|
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
|
implementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
|
implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib"
|
|
implementation "net.fabricmc:fabric-language-kotlin:${project.fabric_kotlin_version}"
|
|
implementation "com.mojang:brigadier:1.2.9"
|
|
|
|
// NanoVG is not part of Minecraft's LWJGL modules, so bundle it (and its
|
|
// natives) into the mod jar via include so it is present at runtime.
|
|
implementation "org.lwjgl:lwjgl-nanovg:${project.nanovg_version}"
|
|
include "org.lwjgl:lwjgl-nanovg:${project.nanovg_version}"
|
|
['linux', 'linux-arm64', 'windows', 'macos', 'macos-arm64'].each { platform ->
|
|
runtimeOnly "org.lwjgl:lwjgl-nanovg:${project.nanovg_version}:natives-${platform}"
|
|
include "org.lwjgl:lwjgl-nanovg:${project.nanovg_version}:natives-${platform}"
|
|
}
|
|
}
|
|
|
|
processResources {
|
|
inputs.property "version", project.version
|
|
filesMatching("fabric.mod.json") {
|
|
expand "version": inputs.properties.version
|
|
}
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
it.options.encoding = "UTF-8"
|
|
it.options.release = 25
|
|
}
|
|
|
|
java {
|
|
withSourcesJar()
|
|
sourceCompatibility = JavaVersion.VERSION_25
|
|
targetCompatibility = JavaVersion.VERSION_25
|
|
}
|
|
|
|
kotlin {
|
|
jvmToolchain(25)
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
create("mavenJava", MavenPublication) {
|
|
artifactId = "lattice-${project.minecraft_version}-fabric"
|
|
from components.java
|
|
}
|
|
}
|
|
repositories {
|
|
mavenLocal()
|
|
}
|
|
}
|
|
|
|
// Copies the built lattice and example mod jars into a Minecraft mods folder.
|
|
// Override the target with -PmodsDir=/path/to/mods (defaults to the Prism instance).
|
|
def defaultModsDir = "${System.getProperty('user.home')}/.local/share/PrismLauncher/instances/Lattice testing/minecraft/mods"
|
|
|
|
tasks.register('deployMods', Copy) {
|
|
group = 'lattice'
|
|
description = 'Copies the lattice and example mod jars into a Minecraft mods folder.'
|
|
dependsOn tasks.named('jar'), project(':example').tasks.named('jar')
|
|
|
|
from tasks.named('jar').flatMap { it.archiveFile }
|
|
from project(':example').tasks.named('jar').flatMap { it.archiveFile }
|
|
into providers.gradleProperty('modsDir').orElse(defaultModsDir)
|
|
}
|