Files
architectury-plugin/src/loom010/kotlin/dev/architectury/plugin/loom/LoomInterface010.kt
shedaniel 60ae5fb67d Add support for Loom 0.10
Signed-off-by: shedaniel <daniel@shedaniel.me>
2021-09-22 22:40:27 +08:00

61 lines
2.0 KiB
Kotlin

package dev.architectury.plugin.loom
import net.fabricmc.loom.LoomGradleExtension
import net.fabricmc.loom.configuration.ide.RunConfig
import net.fabricmc.loom.task.RemapJarTask
import org.gradle.api.Project
import org.gradle.api.file.RegularFile
import org.gradle.api.provider.Provider
import org.gradle.jvm.tasks.Jar
import java.io.File
import java.nio.file.Path
import java.util.function.Consumer
class LoomInterface010(private val project: Project) : LoomInterface {
private val extension: LoomGradleExtension
get() = LoomGradleExtension.get(project)
override val allMixinMappings: Collection<File>
get() = extension.allMixinMappings
override val tinyMappingsWithSrg: Path
get() = extension.mappingsProvider.tinyMappingsWithSrg
override val refmapName: String
get() = extension.mixin.defaultRefmapName.get()
override var generateSrgTiny: Boolean
get() = extension.shouldGenerateSrgTiny()
set(value) {
extension.setGenerateSrgTiny(value)
}
override fun settingsPostEdit(action: (config: LoomInterface.LoomRunConfig) -> Unit) {
extension.settingsPostEdit.add(Consumer { c -> action(LoomRunConfigImpl(c)) })
}
override fun setIdeConfigGenerated() {
extension.runConfigs.forEach { it.isIdeConfigGenerated = true }
extension.runConfigs.whenObjectAdded { it.isIdeConfigGenerated = true }
extension.addTaskBeforeRun("\$PROJECT_DIR\$/${project.name}:classes")
}
override fun setRemapJarInput(task: Jar, archiveFile: Provider<RegularFile>) {
task as RemapJarTask
task.input.set(archiveFile)
}
class LoomRunConfigImpl(private val config: RunConfig) : LoomInterface.LoomRunConfig {
override var mainClass: String
get() = config.mainClass
set(value) {
config.mainClass = value
}
override var vmArgs: String
get() = config.vmArgs
set(value) {
config.vmArgs = value
}
}
}