summaryrefslogtreecommitdiff
path: root/sharedVariables/src/ProjectTarget.kt
diff options
context:
space:
mode:
Diffstat (limited to 'sharedVariables/src/ProjectTarget.kt')
-rw-r--r--sharedVariables/src/ProjectTarget.kt74
1 files changed, 74 insertions, 0 deletions
diff --git a/sharedVariables/src/ProjectTarget.kt b/sharedVariables/src/ProjectTarget.kt
new file mode 100644
index 000000000..9bf46c781
--- /dev/null
+++ b/sharedVariables/src/ProjectTarget.kt
@@ -0,0 +1,74 @@
+package at.skyhanni.sharedvariables
+
+private fun yarn(version: String): String = "net.fabricmc:yarn:${version}:v2"
+
+enum class ProjectTarget(
+ val projectName: String,
+ val minecraftVersion: MinecraftVersion,
+ val mappingDependency: String,
+ val mappingStyle: MappingStyle,
+ val forgeDep: String?,
+ linkTo: String?,
+) {
+ MAIN(
+ "1.8.9",
+ MinecraftVersion.MC189,
+ "de.oceanlabs.mcp:mcp_stable:22-1.8.9@zip",
+ MappingStyle.SEARGE,
+ "net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9",
+ "BRIDGE112",
+ ),
+ BRIDGE112(
+ "1.12.2",
+ MinecraftVersion.MC11202,
+ "de.oceanlabs.mcp:mcp_stable:39-1.12@zip",
+ MappingStyle.SEARGE,
+ "net.minecraftforge:forge:1.12.2-14.23.5.2847",
+ "BRIDGE116FORGE",
+ ),
+ BRIDGE116FORGE(
+ "1.16.5-forge",
+ MinecraftVersion.MC11605,
+ "official",
+ MappingStyle.SEARGE,
+ "net.minecraftforge:forge:1.16.5-36.2.39",
+ "BRIDGE116FABRIC",
+ ),
+ BRIDGE116FABRIC(
+ "1.16.5",
+ MinecraftVersion.MC11605,
+ yarn("1.16.5+build.10"),
+ MappingStyle.YARN,
+ null,
+ "MODERN",
+ ),
+ MODERN(
+ "1.21",
+ MinecraftVersion.MC121,
+ yarn("1.21+build.9"),
+ MappingStyle.YARN,
+ null,
+ null,
+ )
+ ;
+
+ val isBridge get() = name.contains("bridge")
+
+ val linkTo by lazy {
+ if (linkTo == null) null
+ else {
+ ProjectTarget.values().find { it.name == linkTo }!!
+ }
+ }
+ val parent by lazy {
+ values().find { it.linkTo == this }
+ }
+ val isForge get() = forgeDep != null
+ val isFabric get() = forgeDep == null
+
+ val projectPath get() = ":$projectName"
+
+ companion object {
+ fun activeVersions() = values().filter { MultiVersionStage.activeState.shouldCreateProject(it) }
+ }
+}