Scripts/lom/src/main/kotlin/io/gitlab/jfronny/lom/ext/LoomExt.kt

38 lines
2.4 KiB
Kotlin

package io.gitlab.jfronny.lom.ext
import net.fabricmc.loom.api.LoomGradleExtensionAPI
import net.fabricmc.loom.task.GenerateSourcesTask
import net.fabricmc.loom.task.RemapJarTask
import net.fabricmc.loom.task.RemapSourcesJarTask
import net.fabricmc.loom.task.UnpickJarTask
import org.gradle.api.Action
import org.gradle.api.DefaultTask
import org.gradle.api.Project
import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.SourceSetContainer
import org.gradle.api.tasks.TaskContainer
import org.gradle.kotlin.dsl.named
val Project.loom: LoomGradleExtensionAPI get() = extensions.getByName("loom") as LoomGradleExtensionAPI
fun Project.loom(configure: Action<LoomGradleExtensionAPI>) = extensions.configure("loom", configure)
fun DependencyHandler.minecraft(dependencyNotation: Any) = add("minecraft", dependencyNotation)
fun DependencyHandler.mappings(dependencyNotation: Any) = add("mappings", dependencyNotation)
fun DependencyHandler.modImplementation(dependencyNotation: Any) = add("modImplementation", dependencyNotation)
fun DependencyHandler.testmodImplementation(dependencyNotation: Any) = add("testmodImplementation", dependencyNotation)
fun DependencyHandler.clientImplementation(dependencyNotation: Any) = add("clientImplementation", dependencyNotation)
val SourceSetContainer.main: SourceSet get() = named("main").get()
fun SourceSetContainer.main(configure: Action<SourceSet>) = configure.execute(this.main)
val SourceSetContainer.client: SourceSet get() = named("client").get()
fun SourceSetContainer.client(configure: Action<SourceSet>) = configure.execute(this.client)
val SourceSetContainer.testmod: SourceSet get() = named("testmod").get()
fun SourceSetContainer.testmod(configure: Action<SourceSet>) = configure.execute(this.testmod)
fun TaskContainer.remapJar(configure: RemapJarTask.() -> Unit) = named<RemapJarTask>("remapJar").configure(configure)
val TaskContainer.remapSourcesJar: RemapSourcesJarTask get() = named<RemapSourcesJarTask>("remapSourcesJar").get()
val TaskContainer.genClientOnlySources: DefaultTask get() = named<DefaultTask>("genClientOnlySources").get()
val TaskContainer.genCommonSources: DefaultTask get() = named<DefaultTask>("genCommonSources").get()
val TaskContainer.unpickClientOnlyJar: UnpickJarTask get() = named<UnpickJarTask>("unpickClientOnlyJar").get()
val TaskContainer.unpickCommonJar: UnpickJarTask get() = named<UnpickJarTask>("unpickCommonJar").get()