From 4fe24abc51756c0692e7358c2c6eb5def1654145 Mon Sep 17 00:00:00 2001 From: coolGi Date: Mon, 14 Nov 2022 21:51:09 +1030 Subject: [PATCH] Save commit for new build system --- .gitignore | 3 - build.gradle | 232 +++++++----------- buildAll | 24 +- buildAll.bat | 35 ++- common/build.gradle | 20 +- .../main/resources/architectury.common.json | 3 - fabric/build.gradle | 43 ++-- fabric/src/main/resources/fabric.mod.json | 2 +- forge/build.gradle | 109 +++++--- gradle.properties | 18 +- settings.gradle | 46 ++-- .../1.16.5.properties | 3 +- .../1.17.1.properties | 3 +- .../1.18.1.properties | 3 +- .../1.18.2.properties | 5 +- .../1.19.2.properties | 3 + .../1.19.properties | 7 +- 17 files changed, 287 insertions(+), 272 deletions(-) delete mode 100644 common/src/main/resources/architectury.common.json rename 1.16.5.properties => versionProperties/1.16.5.properties (95%) rename 1.17.1.properties => versionProperties/1.17.1.properties (95%) rename 1.18.1.properties => versionProperties/1.18.1.properties (95%) rename 1.18.2.properties => versionProperties/1.18.2.properties (95%) rename 1.19.2.properties => versionProperties/1.19.2.properties (94%) rename 1.19.properties => versionProperties/1.19.properties (94%) diff --git a/.gitignore b/.gitignore index 9a08cc7ad..b6f0d8f7a 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,3 @@ Merged/ # file genearated via MC version switching using preprocessor build.properties - -# This accesswidener is generated at runtime ant not needed -common/src/main/resources/lod.accesswidener diff --git a/build.gradle b/build.gradle index c3eb4f95c..ddcc09a26 100644 --- a/build.gradle +++ b/build.gradle @@ -1,16 +1,17 @@ plugins { - // Plugin to help in developing multi-loader mods - id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "0.12.0-SNAPSHOT" apply false + id "java" // Plugin to handle dependencies - id 'com.github.johnrengelman.shadow' version '7.0.0' apply false + id "com.github.johnrengelman.shadow" version '7.0.0' apply false // Plugin to create merged jars id "io.github.pacifistmc.forgix" version "1.2.6" + // Manifold preprocessor + id 'systems.manifold.manifold-gradle-plugin' version '0.0.2-alpha' + // Provides mc libraries to core - id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' apply false +// id "org.spongepowered.gradle.vanilla" version '0.2.1-SNAPSHOT' apply false } /** @@ -20,10 +21,10 @@ plugins { * @param mcIndex array index of the currently active MC version */ def writeBuildGradlePredefine(List mcVers, int mcIndex) { - ArrayList redefineList = new ArrayList() + for (int i=0; i mcVers, int mcIndex) { } } - // build the list of preprocessors to use + // Build the list of preprocessors to use StringBuilder sb = new StringBuilder() - // check if this is a development build + sb.append("# DON'T TOUCH THIS FILE, This is handled by the build script\n") + + // Check if this is a development build if (mod_version.toLowerCase().contains("dev")) { // WARNING: only use this for logging, we don't want to have confusion // when a method doesn't work correctly in the release build. @@ -46,7 +49,7 @@ def writeBuildGradlePredefine(List mcVers, int mcIndex) { sb.append("=\n") } - // build the MC version preprocessors + // Build the MC version preprocessors for (String redefinedVersion : redefineList) { sb.append(redefinedVersion) sb.append("=\n") @@ -56,71 +59,46 @@ def writeBuildGradlePredefine(List mcVers, int mcIndex) { // Sets up the variables for Manifold in the code def loadProperties() { - def defaultMcVersion = "1.19.2" -// def defaultMcVersion = "1.19" // For now use 1.18.2 as default until 1.19 is done + def defaultMcVersion = "1.18.2" // 1.18.2 is our current most stable version so we use that if no version was defined + def mcVersion = "" - def mcVers = mcVersions.split(",") + def mcVers = fileTree("versionProperties").files.name // Get all the files in "versionProperties" + for (int i = 0; i < mcVers.size(); i++) { + mcVers[i] = mcVers[i].replaceAll(".properties", "") // As we are getting the file names, we should remove the ".properties" at the end to get the versions + } int mcIndex = -1 - println "Avalible MC versions: ${mcVersions}" + println "Avalible MC versions: ${mcVers}" if (project.hasProperty("mcVer")) { mcVersion = mcVer - mcIndex = Arrays.asList(mcVers).indexOf(mcVer) + mcIndex = mcVers.indexOf(mcVer) } if (mcIndex == -1) { println "No mcVer set or the set mcVer is invalid! Defaulting to ${defaultMcVersion}." - println "Tip: Use -PmcVer='${defaultMcVersion}' in cmd arg to set mcVer." + println "Tip: Use -PmcVer=\"${defaultMcVersion}\" in cmd arg to set mcVer." mcVersion = defaultMcVersion - mcIndex = Arrays.asList(mcVers).indexOf(defaultMcVersion) + mcIndex = mcVers.indexOf(defaultMcVersion) assert mcIndex != -1 } println "Loading properties file at " + mcVersion + ".properties" def props = new Properties() - props.load(new FileInputStream("$rootProject.rootDir/"+"$mcVersion"+".properties")) + props.load(new FileInputStream("$rootProject.rootDir/versionProperties/"+"$mcVersion"+".properties")) props.each { prop -> rootProject.ext.set(prop.key, prop.value) // println "Added prop [key:" + prop.key + ", value:" + prop.value + "]" } - writeBuildGradlePredefine(Arrays.asList(mcVers), mcIndex) - - // Stuff for access wideners - def mcVersionToAcsessWidenerVersion = [ - "1.16.5": "1_16", - "1.17.1": "1_17", - "1.18.1": "1_18", - "1.18.2": "1_18", - "1.19": "1_19", - "1.19.1": "1_19", - "1.19.2": "1_19" - ] - // Use this as sometimes multiple versions use the same access wideners - rootProject.ext.set("accessWidenerVersion", mcVersionToAcsessWidenerVersion.get(mcVersion)) + writeBuildGradlePredefine(mcVers, mcIndex) } + loadProperties() -// Sets up the accesswideners -def makeAccessWidener() { - def accessWidenerFile = project(":common").file("src/main/resources/lod.accesswidener") - if (accessWidenerFile.exists()) { - delete accessWidenerFile - } - - copy { - from project(":common").file("src/main/resources/${rootProject.accessWidenerVersion}.lod.accesswidener") - into project(":common").file("src/main/resources/") - rename "${rootProject.accessWidenerVersion}.lod.accesswidener", "lod.accesswidener" - } -} -makeAccessWidener() - -// Sets up the version string +// Sets up the version string (the name we use for our jar) rootProject.versionStr = rootProject.mod_version + "-" + rootProject.minecraft_version // + "-" + new Date().format("yyyy_MM_dd_HH_mm") - -// Merged jar settings +// Forgix settings (used for merging jars) forgix { group = "com.seibel.lod" mergedJarName = "DistantHorizons-${rootProject.versionStr}.jar" @@ -137,26 +115,17 @@ forgix { removeDuplicate "com.seibel.lod.core" } -architectury { - minecraft = rootProject.minecraft_version -} subprojects { p -> - - // setup Architectury - if (p == project(":core") || p == project(":api")) { + // Apply plugins + apply plugin: "java" + apply plugin: "com.github.johnrengelman.shadow" +// apply plugin: "org.spongepowered.gradle.vanilla" // Provides minecraft libraries + if (p == project(":core")) { apply plugin: "application" - apply plugin: "org.spongepowered.gradle.vanilla" // Provides minecraft libraries - apply plugin: "com.github.johnrengelman.shadow" - } else { - apply plugin: "com.github.johnrengelman.shadow" - apply plugin: "dev.architectury.loom" - - loom { - silentMojangMappingsLicense() - } } + // set up custom configurations (configurations are a way to handle dependencies) configurations { // extends the shadowJar configuration @@ -166,23 +135,27 @@ subprojects { p -> customModule implementation.extendsFrom(customModule) - } - - // Set up the minecraft non-dependency for core sub-projects - if (p == project(":core") || p == project(":api")) { - minecraft { - version("${rootProject.minecraft_version}") - } - // Set the standalone jar entrypoint - // (This will point to a non-existent class in all sub-projects except "Core") + if (p == project(":fabric") /* || p == project(":quilt") */ || p == project(":forge")) { + // Shadow common + common + shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. + compileClasspath.extendsFrom common + runtimeClasspath.extendsFrom common + developmentForge.extendsFrom common + } + } + + + // Set the standalone jar entrypoint + // (This will point to a non-existent class in all sub-projects except "Core") + if (p == project(":core")) { application { mainClass.set('com.seibel.lod.core.jar.JarMain') } } dependencies { - //=====================// // shared dependencies // //=====================// @@ -217,29 +190,6 @@ subprojects { p -> // conditional dependencies // //==========================// - // The logic for buildForge can be made more succinct, but the readability goes way down. - def buildForge = true - if (gradle.startParameter.taskRequests.size() > 0) { - if (gradle.startParameter.taskRequests[0].args.size() > 0) { - if (gradle.startParameter.taskRequests[0].args[0].startsWith("fabric:")) { - buildForge = false - } - } - } - - // Minecraft dependent sub-projects - if (p == project(":common") || (buildForge && p == project(":forge")) || p == project(":fabric")) { - // Add Minecraft - minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" - // The following line declares the mojmap mappings & parchment mappings - mappings loom.layered() { - // Mojmap mappings - officialMojangMappings() - // Parchment mappings (it adds parameter mappings & javadoc) - parchment("org.parchmentmc.data:parchment-${rootProject.minecraft_version}:${rootProject.parchment_version}@zip") - } - } - // Add core if (p != project(":api") && p != project(":core")) { implementation(project(":core")) { @@ -261,10 +211,10 @@ subprojects { p -> } } - // Allows the jar to run standalone + // Adds the standalone jar's entrypoint jar { manifest { - attributes 'Implementation-Title': rootProject.archives_base_name, + attributes 'Implementation-Title': rootProject.mod_name, 'Implementation-Version': rootProject.mod_version, 'Main-Class': 'com.seibel.lod.core.jar.JarMain' // When changing the main of the jar change this line } @@ -286,7 +236,7 @@ subprojects { p -> // } // Run mergeJars when running build - if (p != project(":api") && p != project(":api")) { + if (p != project(":api") && p != project(":core")) { build.finalizedBy(mergeJars) assemble.finalizedBy(mergeJars) } @@ -294,10 +244,9 @@ subprojects { p -> allprojects { p -> apply plugin: "java" - apply plugin: "architectury-plugin" apply plugin: "maven-publish" - archivesBaseName = rootProject.archives_base_name + archivesBaseName = rootProject.mod_name version = rootProject.mod_version group = rootProject.maven_group @@ -308,13 +257,13 @@ allprojects { p -> maven { url "https://maven.parchmentmc.org" } // For Architectury API - maven { url "https://maven.architectury.dev" } +// maven { url "https://maven.architectury.dev" } - // used to download and compile dependencies from git repos - maven { url 'https://jitpack.io' } + // For Git repositories + maven { url "https://jitpack.io" } // For Manifold Preprocessor - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } // Required for importing Modrinth mods maven { @@ -339,7 +288,7 @@ allprojects { p -> // Required for Mixins & VanillaGradle maven { url "https://repo.spongepowered.org/maven/" } - // Required for canvas + // Required for Canvas (mod) maven { url "https://maven.vram.io/" } // These 2 are for importing mods that arnt on CursedForge, Modrinth, GitHub, GitLab or anywhere opensource @@ -359,48 +308,51 @@ allprojects { p -> // Only uncomment this when testing stuff with lwjgl in the core jar -// if (p == project(":core")) { -// dependencies { -// project.ext.lwjglNatives = "natives-linux" -// -// implementation platform("org.lwjgl:lwjgl-bom:3.3.0") -// -// implementation "org.lwjgl:lwjgl" -// implementation "org.lwjgl:lwjgl-assimp" -// implementation "org.lwjgl:lwjgl-glfw" -// implementation "org.lwjgl:lwjgl-openal" -// implementation "org.lwjgl:lwjgl-opengl" -// implementation "org.lwjgl:lwjgl-stb" -// implementation "org.lwjgl:lwjgl-tinyfd" -// runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-tinyfd::$lwjglNatives" -// implementation "org.joml:joml:1.10.2" -// } -// } + /* + if (p == project(":core")) { + dependencies { + project.ext.lwjglNatives = "natives-linux" + + implementation platform("org.lwjgl:lwjgl-bom:3.3.0") + + implementation "org.lwjgl:lwjgl" + implementation "org.lwjgl:lwjgl-assimp" + implementation "org.lwjgl:lwjgl-glfw" + implementation "org.lwjgl:lwjgl-openal" + implementation "org.lwjgl:lwjgl-opengl" + implementation "org.lwjgl:lwjgl-stb" + implementation "org.lwjgl:lwjgl-tinyfd" + runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-tinyfd::$lwjglNatives" + implementation "org.joml:joml:1.10.2" + } + } + */ // Put stuff from gradle.properties into the mod info processResources { - def resourceTargets = ["fabric.mod.json", "META-INF/mods.toml"] // Location of where to put + def resourceTargets = ["fabric.mod.json", "quilt.mod.json", "META-INF/mods.toml"] // Location of where to inject the properties def intoTargets = ["$buildDir/resources/main/"] // Location of the built resources folder def replaceProperties = [ version : mod_version, - mod_name : mod_name, + mod_name : mod_readable_name, authors : mod_authors, description : mod_description, homepage : mod_homepage, source : mod_source, issues : mod_issues, + discord : mod_discord, minecraft_version : minecraft_version, compatible_minecraft_versions: compatible_minecraft_versions, java_version : java_version ] // The left side is what gets replaced in the mod info and the right side is where to get it from in the gradle.properties - //TODO: Make Forge loader version also be relaced with non hardcoded value instead of "[36,42)" + //TODO: Make Forge loader version also be replaced with non hardcoded value instead of "[36,42)" inputs.properties replaceProperties replaceProperties.put 'project', project @@ -421,6 +373,12 @@ allprojects { p -> } } + task copyAccessWidener(type: Copy) { + from project(":common").file("src/main/resources/${accessWidenerVersion}.lod.accesswidener") + into(file(p.file("build/resources/main"))) + rename "${accessWidenerVersion}.lod.accesswidener", "lod.accesswidener" + } + task copyCoreResources(type: Copy) { from fileTree(project(":core").file("src/main/resources")) into p.file("build/resources/main") @@ -441,12 +399,6 @@ allprojects { p -> java { withSourcesJar() } - - // Disable running common - if (p == project(":common")) { - runClient.enabled = false - runServer.enabled = false - } } // Delete the merged folder when running clean diff --git a/buildAll b/buildAll index ba86063fc..fc042cb76 100755 --- a/buildAll +++ b/buildAll @@ -1,13 +1,15 @@ -#!/usr/bin/env sh +#!/bin/sh -buildVersion() -{ - ./gradlew clean -PmcVer=$1 --no-daemon - ./gradlew build -PmcVer=$1 --no-daemon -} +# Loop trough everything in the version properties folder +for d in versionProperties/*; do + # Get the name of the version that is going to be compiled + version=$(echo "$d" | sed "s/versionProperties\///" | sed "s/.properties//") -buildVersion 1.19 -buildVersion 1.18.2 -buildVersion 1.18.1 -buildVersion 1.17.1 -buildVersion 1.16.5 + # Clean out the folders and build it + # (We could use "./" to run gradlew, but as it is a shell script im going to be running it with the "sh" command) + echo "Cleaning workspace to build $version" + sh gradlew clean -PmcVer=$version --no-daemon | true + echo "Building $version" + sh gradlew build -PmcVer=$version --no-daemon | true + # The "| true" at the end of those 2 are just to make sure the script continues even if a build fails +done diff --git a/buildAll.bat b/buildAll.bat index c5d06ee5d..9affd3a91 100644 --- a/buildAll.bat +++ b/buildAll.bat @@ -1,16 +1,25 @@ @echo off -SETLOCAL -CALL :buildVersion "1.19" -CALL :buildVersion "1.18.2" -CALL :buildVersion "1.18.1" -CALL :buildVersion "1.17.1" -CALL :buildVersion "1.16.5" -EXIT /B %ERRORLEVEL% +echo Windows build all script needs to be rewritten +echo I dont use Windows so I cant really make this +echo So if someone does use Windows and knows how to script stuff then can you please port the "buildall" script I made for Unix -:buildVersion -@echo on -call ./gradlew.bat clean -PmcVer="%~1" --no-daemon -call ./gradlew.bat build -PmcVer="%~1" --no-daemon -@echo off -EXIT /B 0 + + + +@REM Old BAT script if you need some help with this task + +@REM SETLOCAL +@REM CALL :buildVersion "1.19" +@REM CALL :buildVersion "1.18.2" +@REM CALL :buildVersion "1.18.1" +@REM CALL :buildVersion "1.17.1" +@REM CALL :buildVersion "1.16.5" +@REM EXIT /B %ERRORLEVEL% +@REM +@REM :buildVersion +@REM @echo on +@REM call ./gradlew.bat clean -PmcVer="%~1" --no-daemon +@REM call ./gradlew.bat build -PmcVer="%~1" --no-daemon +@REM @echo off +@REM EXIT /B 0 diff --git a/common/build.gradle b/common/build.gradle index 7d345402c..9d87530b4 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,27 +1,23 @@ -architectury { - common(rootProject.enabled_platforms.split(",")) +plugins { + id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' } -loom { - accessWidenerPath = file("src/main/resources/lod.accesswidener") +minecraft { + accessWideners(project(":common").file("src/main/resources/${rootProject.accessWidenerVersion}.lod.accesswidener")) + version(rootProject.minecraft_version) } dependencies { // We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies // Do NOT use other classes from fabric loader - modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" - - if (minecraft_version == "1.16.5") { - modApi("me.shedaniel:architectury:${rootProject.architectury_version}") - } else { - modApi("dev.architectury:architectury:${rootProject.architectury_version}") - } +// modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" } + publishing { publications { mavenCommon(MavenPublication) { - artifactId = rootProject.archives_base_name + artifactId = rootProject.mod_readable_name from components.java } } diff --git a/common/src/main/resources/architectury.common.json b/common/src/main/resources/architectury.common.json deleted file mode 100644 index a37cd6679..000000000 --- a/common/src/main/resources/architectury.common.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "accessWidener": "lod.accesswidener" -} \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index 6d90651aa..bed5b641d 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,21 +1,26 @@ -version = rootProject.versionStr - -architectury { - platformSetupLoomIde() - fabric() +plugins { + id "fabric-loom" version "0.12-SNAPSHOT" } loom { - accessWidenerPath = project(":common").loom.accessWidenerPath + accessWidenerPath = project(":common").file("src/main/resources/${rootProject.accessWidenerVersion}.lod.accesswidener") + runs { + client { + client() + setConfigName("Fabric Client") + ideConfigGenerated(true) + runDir("run") + } + server { + server() + setConfigName("Fabric Server") + ideConfigGenerated(true) + runDir("run") + } + } } configurations { - common - shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. - compileClasspath.extendsFrom common - runtimeClasspath.extendsFrom common - developmentFabric.extendsFrom common - // The addModJar basically embeds the mod to the built jar addModJar include.extendsFrom addModJar @@ -30,9 +35,19 @@ def addMod(path, enabled) { } dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + mappings loom.layered() { + // Mojmap mappings + officialMojangMappings() + // Parchment mappings (it adds parameter mappings & javadoc) + parchment("org.parchmentmc.data:parchment-${rootProject.minecraft_version}:${rootProject.parchment_version}@zip") + } // Fabric loader modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" + // Common + implementation project(":common") + // Architectury API if (minecraft_version == "1.16.5") { addModJar("me.shedaniel:architectury-fabric:${rootProject.architectury_version}") @@ -98,8 +113,6 @@ dependencies { } shadowJar { - exclude "architectury.common.json" - configurations = [project.configurations.shadowCommon, project.configurations.shadowMe, project.configurations.customModule] // Compression @@ -132,10 +145,12 @@ task deleteResources(type: Delete) { processResources { dependsOn(copyCoreResources) + dependsOn(copyAccessWidener) } runClient { dependsOn(copyCoreResources) + dependsOn(copyAccessWidener) jvmArgs "-XX:-OmitStackTraceInFastThrow" finalizedBy(deleteResources) } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index b63bf5f28..b4e3935db 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -48,7 +48,7 @@ "custom": { "modmenu": { "links": { - "modmenu.discord": "https://discord.gg/xAB8G4cENx" + "modmenu.discord": "${discord}" } } } diff --git a/forge/build.gradle b/forge/build.gradle index 0d592b9bc..0fcc0db8c 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,52 +1,92 @@ -version = rootProject.versionStr +buildscript { + repositories { + maven { url = "https://maven.minecraftforge.net" } + maven { url = "https://repo.spongepowered.org/repository/maven-public/" } + mavenCentral() + } + dependencies { + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true + classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT' + } +} +apply plugin: 'net.minecraftforge.gradle' +apply plugin: 'org.spongepowered.mixin' -loom { - forge { - convertAccessWideners.set(true) - extraAccessWideners.add("lod.accesswidener") - mixinConfigs("DistantHorizons.mixins.json") +mixin { + add sourceSets.main, "DistantHorizons.refmap.json" + + config "DistantHorizons.mixins.json" +} + +minecraft { + mappings channel: 'official', version: minecraft_version +// mappings loom.layered() { +// // Mojmap mappings +// officialMojangMappings() +// // Parchment mappings (it adds parameter mappings & javadoc) +// parchment("org.parchmentmc.data:parchment-${rootProject.minecraft_version}:${rootProject.parchment_version}@zip") +// } + + runs { + client { + workingDirectory project.file('run') + ideaModule "${rootProject.name}.${project.name}.main" + taskName 'Client' + args "-mixins.config=DistantHorizons.mixins.json" + } + + server { + workingDirectory project.file('run') + ideaModule "${rootProject.name}.${project.name}.main" + taskName 'Server' + args "-mixins.config=DistantHorizons.mixins.json" + } + + data { + workingDirectory project.file("run") + ideaModule "${rootProject.name}.${project.name}.main" + args '--mod', "lod", '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + taskName 'Data' + args "-mixins.config=DistantHorizons.mixins.json" + } } } +//loom { +// forge { +// convertAccessWideners.set(true) +// extraAccessWideners.add("lod.accesswidener") +// mixinConfigs("DistantHorizons.mixins.json") +// } +//} -architectury { - platformSetupLoomIde() - forge() -} -loom { - accessWidenerPath = project(":common").loom.accessWidenerPath +//loom { +// accessWidenerPath = project(":common").loom.accessWidenerPath +// +// forge { +// convertAccessWideners = true +// extraAccessWideners.add loom.accessWidenerPath.get().asFile.name +// } +//} - forge { - convertAccessWideners = true - extraAccessWideners.add loom.accessWidenerPath.get().asFile.name - } -} - -configurations { - common - shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. - compileClasspath.extendsFrom common - runtimeClasspath.extendsFrom common - developmentForge.extendsFrom common -} def addMod(path, enabled) { if (enabled == "2") - dependencies { modImplementation(path) } + dependencies { implementation(path) } else if (enabled == "1") dependencies { modCompileOnly(path) } } dependencies { // Forge loader - forge "net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}" + minecraft "net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}" // Architectury API if (minecraft_version == "1.16.5") { - modImplementation("me.shedaniel:architectury-forge:${rootProject.architectury_version}") + implementation("me.shedaniel:architectury-forge:${rootProject.architectury_version}") } else { - modImplementation("dev.architectury:architectury-forge:${rootProject.architectury_version}") + implementation("dev.architectury:architectury-forge:${rootProject.architectury_version}") } // Starlight @@ -61,6 +101,7 @@ dependencies { processResources { dependsOn(copyCoreResources) + dependsOn(copyAccessWidener) } shadowJar { @@ -85,11 +126,11 @@ shadowJar { mergeServiceFiles() } -remapJar { - input.set shadowJar.archiveFile - dependsOn shadowJar - classifier null -} +//remapJar { +// input.set shadowJar.archiveFile +// dependsOn shadowJar +// classifier null +//} jar { classifier "dev" diff --git a/gradle.properties b/gradle.properties index 52fd61191..a3821cc4f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,31 +1,27 @@ org.gradle.jvmargs=-Xmx4096M # Mod Info -archives_base_name=DistantHorizons +mod_name=DistantHorizons mod_version=1.7.0-a-dev maven_group=com.seibel.lod -mod_name=Distant Horizons +mod_readable_name=Distant Horizons mod_description=This mod generates and renders simplified terrain beyond the normal view distance at a low performance cost. Allowing you to see much farther without turning your game into a slideshow. mod_authors=["James Seibel", "Leonardo Amato", "Cola", "coolGi", "Ran", "Leetom"] mod_homepage=https://www.curseforge.com/minecraft/mc-mods/distant-horizons mod_source=https://gitlab.com/jeseibel/minecraft-lod-mod/ mod_issues=https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues - -# Architectury Version & Info -architectury_version=5.7.28 -enabled_platforms=fabric,forge +mod_discord=https://discord.gg/xAB8G4cENx # Global Plugin Versions +manifold_version=2022.1.19 toml_version=3.6.4 nightconfig_version=3.6.6 flatlaf_version=2.3 svgSalamander_version=1.1.3 -manifold_version=2022.1.19 -mcVersions=1.16.5,1.17.1,1.18.1,1.18.2,1.19,1.19.1,1.19.2 -# Internal Properties (These are set at runtime) +# Internal Properties (These are set at runtime for Forgix to merge jar's) versionStr= -##### This defines what MC version Intellij will use for the preprocessor -##### and what version is used automatically by build and run commands +# This defines what MC version Intellij will use for the preprocessor +# and what version is used automatically by build and run commands mcVer=1.18.2 diff --git a/settings.gradle b/settings.gradle index 9dd81f28b..f577f9eaf 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,35 +1,37 @@ pluginManagement { repositories { - maven { url "https://maven.fabricmc.net/" } - maven { url "https://maven.architectury.dev/" } - maven { url "https://maven.minecraftforge.net/" } - maven { url "https://repo.spongepowered.org/repository/maven-public/"} + maven { + name "Fabric" + url "https://maven.fabricmc.net/" + } + maven { + name "Forge" + url "https://maven.minecraftforge.net/" + } + maven { // We may not use Quilt atm, but better to have it here for when it eventually gets added + name "Quilt" + url "https://maven.quiltmc.org/repository/release" + } + maven { // Used for Vanilla Minecraft's libraries + name "Sponge" + url "https://repo.spongepowered.org/repository/maven-public/" + } + mavenCentral() gradlePluginPortal() } } -// Minecraft dependent sub-projects -include("common") -include("fabric") - -// The logic for buildForge can be made more succinct, but the readability goes way down. -def buildForge = true -if (gradle.startParameter.taskRequests.size() > 0) { - if (gradle.startParameter.taskRequests[0].args.size() > 0) { - if (gradle.startParameter.taskRequests[0].args[0].startsWith("fabric:")) { - buildForge = false - } - } -} - -if (buildForge) { - include("forge") -} - // Minecraft independent sub-projects include("core") project(":core").projectDir = file('coreSubProjects/core') include("api") project(":api").projectDir = file('coreSubProjects/api') +// Minecraft dependent sub-projects +include("common") +include("fabric") +//include("quilt") // Just put this here for once we need it +include("forge") + + rootProject.name = "DistantHorizons" diff --git a/1.16.5.properties b/versionProperties/1.16.5.properties similarity index 95% rename from 1.16.5.properties rename to versionProperties/1.16.5.properties index 6137e9f37..fe24c8bd5 100644 --- a/1.16.5.properties +++ b/versionProperties/1.16.5.properties @@ -1,9 +1,10 @@ # 1.16.5 version - java_version=8 minecraft_version=1.16.5 parchment_version=2022.03.06 compatible_minecraft_versions=["1.16.4", "1.16.5"] +accessWidenerVersion=1_16 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.13.2 diff --git a/1.17.1.properties b/versionProperties/1.17.1.properties similarity index 95% rename from 1.17.1.properties rename to versionProperties/1.17.1.properties index f914d74ff..ee3b7002f 100644 --- a/1.17.1.properties +++ b/versionProperties/1.17.1.properties @@ -1,9 +1,10 @@ # 1.17.1 version - java_version=16 minecraft_version=1.17.1 parchment_version=2021.12.12 compatible_minecraft_versions=["1.17", "1.17.1"] +accessWidenerVersion=1_17 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.13.2 diff --git a/1.18.1.properties b/versionProperties/1.18.1.properties similarity index 95% rename from 1.18.1.properties rename to versionProperties/1.18.1.properties index 911e6bd00..4853b7337 100644 --- a/1.18.1.properties +++ b/versionProperties/1.18.1.properties @@ -1,9 +1,10 @@ # 1.18.1 version - java_version = 17 minecraft_version=1.18.1 parchment_version=2022.03.06 compatible_minecraft_versions=["1.18", "1.18.1"] +accessWidenerVersion=1_18 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.13.3 diff --git a/1.18.2.properties b/versionProperties/1.18.2.properties similarity index 95% rename from 1.18.2.properties rename to versionProperties/1.18.2.properties index 501c080a6..3f04b457d 100644 --- a/1.18.2.properties +++ b/versionProperties/1.18.2.properties @@ -1,9 +1,10 @@ # 1.18.2 version based stuff - java_version = 17 minecraft_version=1.18.2 parchment_version=2022.03.13 compatible_minecraft_versions=["1.18.2"] +accessWidenerVersion=1_18 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.13.3 @@ -17,8 +18,8 @@ architectury_version=4.4.59 sodium_version=mc1.18.2-0.4.1 iris_version=1.18.x-v1.2.5 bclib_version=1.4.5 - canvas_version=mc118:1.0.2397 immersive_portals_version = v1.4.9-1.18 + canvas_version=mc118:1.0.2397 # Fabric mod run # 0 = Don't enable and don't run diff --git a/1.19.2.properties b/versionProperties/1.19.2.properties similarity index 94% rename from 1.19.2.properties rename to versionProperties/1.19.2.properties index 61681a13d..bc6dbc99a 100644 --- a/1.19.2.properties +++ b/versionProperties/1.19.2.properties @@ -1,7 +1,10 @@ +# 1.19.2 version java_version = 17 minecraft_version=1.19.2 parchment_version=2022.08.10 compatible_minecraft_versions=["1.19.2"] +accessWidenerVersion=1_19 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.14.9 diff --git a/1.19.properties b/versionProperties/1.19.properties similarity index 94% rename from 1.19.properties rename to versionProperties/1.19.properties index 4d2287315..9a3538802 100644 --- a/1.19.properties +++ b/versionProperties/1.19.properties @@ -1,9 +1,10 @@ -# 1.18.2 version based stuff - +# 1.19 version java_version = 17 minecraft_version=1.19 parchment_version=2022.08.10 compatible_minecraft_versions=["1.19"] +accessWidenerVersion=1_19 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.14.7 @@ -16,8 +17,8 @@ architectury_version=5.6.24 lithium_version= sodium_version=3820973 iris_version=1.19.x-v1.2.5 - immersive_portals_version = bclib_version= + immersive_portals_version = canvas_version=mc118:1.0.2397 # Fabric mod run