From 6d7cee3aa7073003d54db49ae0b09b0c0a97a414 Mon Sep 17 00:00:00 2001 From: Caroline Joy Bell Date: Fri, 9 Aug 2024 00:13:27 -0500 Subject: [PATCH] [WIP] Unknown Thingy mappings --- .../unimined/api/mapping/MappingsConfig.kt | 18 ++++++++++++ .../internal/mapping/MappingsProvider.kt | 28 +++++++++++++++++-- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/api/kotlin/xyz/wagyourtail/unimined/api/mapping/MappingsConfig.kt b/src/api/kotlin/xyz/wagyourtail/unimined/api/mapping/MappingsConfig.kt index fa47d25d..4cf921b5 100644 --- a/src/api/kotlin/xyz/wagyourtail/unimined/api/mapping/MappingsConfig.kt +++ b/src/api/kotlin/xyz/wagyourtail/unimined/api/mapping/MappingsConfig.kt @@ -180,6 +180,24 @@ abstract class MappingsConfig>(val project: Project, val m } } + @JvmOverloads + abstract fun unknownThingy(version: String, format: String = "tsrg", key: String = "unknownThingy", action: MappingEntry.() -> Unit = {}) + + @JvmOverloads + fun unknownThingy( + version: String = minecraft.version, + key: String = "unknownThingy", + format: String = "tsrg", + @DelegatesTo(value = MappingEntry::class, strategy = Closure.DELEGATE_FIRST) + action: Closure<*> + ) { + unknownThingy(version, format, key) { + action.delegate = this + action.resolveStrategy = Closure.DELEGATE_FIRST + action.call() + } + } + @JvmOverloads abstract fun yarn(build: Int, key: String = "yarn", action: MappingEntry.() -> Unit = {}) diff --git a/src/mapping/kotlin/xyz/wagyourtail/unimined/internal/mapping/MappingsProvider.kt b/src/mapping/kotlin/xyz/wagyourtail/unimined/internal/mapping/MappingsProvider.kt index 1f225012..04bb610f 100644 --- a/src/mapping/kotlin/xyz/wagyourtail/unimined/internal/mapping/MappingsProvider.kt +++ b/src/mapping/kotlin/xyz/wagyourtail/unimined/internal/mapping/MappingsProvider.kt @@ -8,7 +8,7 @@ import okio.source import okio.use import org.gradle.api.Project import org.gradle.api.artifacts.Dependency -import org.gradle.api.internal.provider.MappingProvider +import org.gradle.internal.extensions.stdlib.toDefaultLowerCase import xyz.wagyourtail.unimined.api.UniminedExtension import xyz.wagyourtail.unimined.api.mapping.MappingsConfig import xyz.wagyourtail.unimined.api.mapping.dsl.MappingDSL @@ -292,7 +292,7 @@ class MappingsProvider(project: Project, minecraft: MinecraftConfig, subKey: Str }) } - + override fun retroMCP(version: String, key: String, action: MappingEntry.() -> Unit) { unimined.mcphackersIvy() addDependency(key, MappingEntry(contentOf(MavenCoords("io.github.mcphackers", "mcp", version, extension = "zip")), "$key-$version").apply { @@ -322,6 +322,28 @@ class MappingsProvider(project: Project, minecraft: MinecraftConfig, subKey: Str }) } + override fun unknownThingy(version: String, format: String, key: String, action: MappingEntry.() -> Unit) { + if (minecraft.version != "1.4.7") throw UnsupportedOperationException("Unknown Thingy is only supported for Minecraft 1.4.7") + unimined.sleepingTownMaven() + val entry = MappingEntry(contentOf( + when (format.toDefaultLowerCase()) { + "tinyV2" -> MavenCoords("com.unascribed", "unknownthingy", version, "v2") + "tsrg2" -> MavenCoords("com.unascribed", "unknownthingy", version, extension = "tsrg2") + else -> MavenCoords("com.unascribed", "unknownthingy", version, extension = "tsrg") + } + ), "$key-$version").apply { + requires("searge") + mapNamespace("named" to "unknownThingy") + provides("unknownThingy" to true) + action() + } + addDependency(key, entry) + + afterLoad.add { + renest(entry.requires.name, *entry.provides.map { it.first.name }.toTypedArray()) + } + } + override fun yarn(build: Int, key: String, action: MappingEntry.() -> Unit) { unimined.fabricMaven() @@ -403,7 +425,7 @@ class MappingsProvider(project: Project, minecraft: MinecraftConfig, subKey: Str } } - + override fun legacyYarn(build: Int, key: String, action: MappingEntry.() -> Unit) { unimined.legacyFabricMaven() val entry = MappingEntry(