sort of working Forge project

This commit is contained in:
dfsek
2021-04-29 01:55:24 -07:00
parent 59b655ce5d
commit 54bb4ef109
4 changed files with 68 additions and 2 deletions

View File

@@ -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<NamedDomainObjectContainer<RenameJarInPlace>>("reobf")
reobf.maybeCreate("shadowJar").run {
mappings = tasks.getByName<GenerateSRG>("createMcpToSrg").output
}
}
configure<UserDevExtension> {
mappings(mapOf(
@@ -57,4 +65,29 @@ configure<UserDevExtension> {
create("client", runConfig)
create("server", runConfig)
}
}
tasks.register<Jar>("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")
}

View File

@@ -0,0 +1,7 @@
package com.dfsek.terra.forge;
import net.minecraftforge.fml.common.Mod;
@Mod("Terra")
public class TerraForgePlugin {
}

View File

@@ -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"

View File

@@ -0,0 +1,6 @@
{
"pack": {
"description": "Terra resources",
"pack_format": 6
}
}