From 54bb4ef109e0fb35d470e094003a7c5ae362e261 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 29 Apr 2021 01:55:24 -0700 Subject: [PATCH] sort of working Forge project --- platforms/forge/build.gradle.kts | 37 ++++++++++++++++++- .../dfsek/terra/forge/TerraForgePlugin.java | 7 ++++ .../src/test/resources/META-INF/mods.toml | 20 ++++++++++ .../forge/src/test/resources/pack.mcmeta | 6 +++ 4 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 platforms/forge/src/main/java/com/dfsek/terra/forge/TerraForgePlugin.java create mode 100644 platforms/forge/src/test/resources/META-INF/mods.toml create mode 100644 platforms/forge/src/test/resources/pack.mcmeta diff --git a/platforms/forge/build.gradle.kts b/platforms/forge/build.gradle.kts index b70ffb094..039f820c9 100644 --- a/platforms/forge/build.gradle.kts +++ b/platforms/forge/build.gradle.kts @@ -1,6 +1,9 @@ import com.dfsek.terra.configureCommon -import net.minecraftforge.gradle.userdev.UserDevExtension +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import net.minecraftforge.gradle.common.util.RunConfig +import net.minecraftforge.gradle.mcp.task.GenerateSRG +import net.minecraftforge.gradle.userdev.UserDevExtension +import net.minecraftforge.gradle.userdev.tasks.RenameJarInPlace buildscript { repositories { @@ -38,7 +41,12 @@ dependencies { "minecraft"("net.minecraftforge:forge:$mcVersion-$forgeVersion") } - +afterEvaluate { + val reobf = extensions.getByName>("reobf") + reobf.maybeCreate("shadowJar").run { + mappings = tasks.getByName("createMcpToSrg").output + } +} configure { mappings(mapOf( @@ -57,4 +65,29 @@ configure { create("client", runConfig) create("server", runConfig) } +} + +tasks.register("deobfJar") { + from(sourceSets["main"].output) + archiveClassifier.set("dev") +} + +val deobfElements = configurations.register("deobfElements") { + isVisible = false + description = "De-obfuscated elements for libs" + isCanBeResolved = false + isCanBeConsumed = true + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_API)) + attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) + attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.EXTERNAL)) + attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) + attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) + } + outgoing.artifact(tasks.named("deobfJar")) +} + +val javaComponent = components["java"] as AdhocComponentWithVariants +javaComponent.addVariantsFromConfiguration(deobfElements.get()) { + mapToMavenScope("runtime") } \ No newline at end of file diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/TerraForgePlugin.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/TerraForgePlugin.java new file mode 100644 index 000000000..126b9ef49 --- /dev/null +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/TerraForgePlugin.java @@ -0,0 +1,7 @@ +package com.dfsek.terra.forge; +import net.minecraftforge.fml.common.Mod; + +@Mod("Terra") +public class TerraForgePlugin { + +} diff --git a/platforms/forge/src/test/resources/META-INF/mods.toml b/platforms/forge/src/test/resources/META-INF/mods.toml new file mode 100644 index 000000000..bb8120be8 --- /dev/null +++ b/platforms/forge/src/test/resources/META-INF/mods.toml @@ -0,0 +1,20 @@ +modLoader = "javafml" +loaderVersion = "[33,)" +license = "GNU General Public License, version 3.0" +issueTrackerURL = "https://github.com/PolyhedralDev/Terra/issues" +[[mods]] +modId = "terra" +version = "@VERSION@" +displayName = "Terra" +displayURL = "https://github.com/PolyhedralDev/Terra" +logoFile = "logo_text.png" +authors = "dfsek & Terra contributors" +description = ''' +Powerful data-driven world generator +''' +[[dependencies.terra]] +modId = "forge" +mandatory = true +versionRange = "[36.0.4,)" +ordering = "NONE" +side = "BOTH" \ No newline at end of file diff --git a/platforms/forge/src/test/resources/pack.mcmeta b/platforms/forge/src/test/resources/pack.mcmeta new file mode 100644 index 000000000..5ed246b25 --- /dev/null +++ b/platforms/forge/src/test/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "Terra resources", + "pack_format": 6 + } +} \ No newline at end of file