From 1079d5a3ccf35b4056bda40b78718f7b3e3e204c Mon Sep 17 00:00:00 2001 From: Wagyourtail Date: Mon, 15 Jul 2024 17:37:33 -0500 Subject: [PATCH] modify MappingResolver --- .../mapping/resolver/MappingResolver.kt | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping/resolver/MappingResolver.kt b/src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping/resolver/MappingResolver.kt index 0956176..382d84b 100644 --- a/src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping/resolver/MappingResolver.kt +++ b/src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping/resolver/MappingResolver.kt @@ -29,26 +29,29 @@ abstract class MappingResolver>(val name: String) { } var envType by FinalizeOnRead(EnvType.JOINED) - private val entries = finalizableMapOf() - private lateinit var namespaces: Set> - private lateinit var resolved: MemoryMappingTree + private val _entries = finalizableMapOf() + val entries: Map get() = _entries + + lateinit var namespaces: Set> + private set + lateinit var resolved: MemoryMappingTree + private set val unmappedNs = Namespace("official") open val propogator: (MemoryMappingTree.() -> Unit)? = null - suspend fun finalize() { - entries.finalize() - entries.values.forEach { it.finalize() } + open suspend fun finalize() { + _entries.finalize() + _entries.values.forEach { it.finalize() } } - fun addDependency(key: String, dependency: MappingEntry) { - if (entries.containsKey(key)) { + if (_entries.containsKey(key)) { LOGGER.warn { "Overwriting dependency $key" } } - entries[key] = dependency + _entries[key] = dependency } abstract fun createForPostProcess(key: String): T @@ -79,10 +82,10 @@ abstract class MappingResolver>(val name: String) { }).also(postProcess)) } - suspend fun resolve(): MemoryMappingTree { + open suspend fun resolve(): MemoryMappingTree { if (::resolved.isInitialized) return resolved finalize() - val values = entries.values + val values = _entries.values val resolved = MemoryMappingTree() resolved.visitHeader(unmappedNs.name) val resolvedEntries = mutableSetOf() @@ -218,6 +221,10 @@ abstract class MappingResolver>(val name: String) { requires = Namespace(ns) } + fun provides(ns: String, named: Boolean) { + provides.add(Namespace(ns) to named) + } + fun provides(vararg ns: Pair) { provides.addAll(ns.map { Namespace(it.first) to it.second }) }