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) }