diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-07-06 12:03:13 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-07-06 12:03:28 +0200 |
| commit | 6c3f8333620e61bc8f00aca4d64b117ac7d0149b (patch) | |
| tree | 1c0993adda21a76385c47f514e7a1d972e841c4f /buildSrc/src/FabricModTransform.kt | |
| parent | 08c81862afd8689c6eb6f4d8deec8b1ab6ad6d3a (diff) | |
| download | Firmament-6c3f8333620e61bc8f00aca4d64b117ac7d0149b.tar.gz Firmament-6c3f8333620e61bc8f00aca4d64b117ac7d0149b.tar.bz2 Firmament-6c3f8333620e61bc8f00aca4d64b117ac7d0149b.zip | |
build: use composite builds instead of buildSrc
Diffstat (limited to 'buildSrc/src/FabricModTransform.kt')
| -rw-r--r-- | buildSrc/src/FabricModTransform.kt | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/buildSrc/src/FabricModTransform.kt b/buildSrc/src/FabricModTransform.kt deleted file mode 100644 index 53affbe..0000000 --- a/buildSrc/src/FabricModTransform.kt +++ /dev/null @@ -1,80 +0,0 @@ -import com.github.jengelman.gradle.plugins.shadow.transformers.ResourceTransformer -import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContext -import com.google.gson.Gson -import com.google.gson.JsonObject -import com.google.gson.JsonPrimitive -import java.io.Serializable -import net.fabricmc.accesswidener.AccessWidenerReader -import net.fabricmc.accesswidener.AccessWidenerWriter -import org.apache.tools.zip.ZipEntry -import org.apache.tools.zip.ZipOutputStream -import org.gradle.api.file.FileTreeElement -import org.gradle.api.provider.Property -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.Internal - -open class FabricModTransform : ResourceTransformer { - - enum class AccessWidenerInclusion : Serializable { - ALL, - NONE, - } - - @get:Input - var mergeAccessWideners: AccessWidenerInclusion = AccessWidenerInclusion.ALL - - @get:Internal - internal var mergedFmj: JsonObject? = null - - @get:Internal - internal val foundAccessWideners = AccessWidenerWriter() - - @get:Internal - internal var foundAnyAccessWidener = false - - override fun canTransformResource(element: FileTreeElement): Boolean { - if (mergeAccessWideners == AccessWidenerInclusion.ALL && element.name.endsWith(".accesswidener")) - return true - return element.path == "fabric.mod.json" - } - - override fun transform(context: TransformerContext) { - if (context.path.endsWith(".accesswidener")) { - foundAnyAccessWidener = true - // TODO: allow filtering for only those mentioned in a fabric.mod.json, potentially - context.inputStream.use { stream -> - AccessWidenerReader(foundAccessWideners).read(stream.bufferedReader()) - } - return - } - // TODO: mixins.json relocations - val fmj = context.inputStream.use { stream -> - Gson().fromJson(stream.bufferedReader(), JsonObject::class.java) - } - val mergedFmj = this.mergedFmj - println("${fmj["id"]} is first? ${mergedFmj == null}") - if (mergedFmj == null) { - this.mergedFmj = fmj - } else { - // TODO: merge stuff - } - } - - override fun hasTransformedResource(): Boolean { - return mergedFmj != null - } - - override fun modifyOutputStream(os: ZipOutputStream, preserveFileTimestamps: Boolean) { - val mergedFmj = mergedFmj!! - if (foundAnyAccessWidener) { - val awFile = mergedFmj["accessWidener"] - require(awFile is JsonPrimitive && awFile.isString) - os.putNextEntry(ZipEntry(awFile.asString)) - os.write(foundAccessWideners.write()) - os.closeEntry() - } - os.putNextEntry(ZipEntry("fabric.mod.json")) - os.write(mergedFmj.toString().toByteArray()) - os.closeEntry() - } -} |
