From 54e6d694560ce08d698ed3457592f66c1ebd1d8d Mon Sep 17 00:00:00 2001 From: Motschen Date: Wed, 2 Nov 2022 18:21:21 +0100 Subject: [PATCH] Port to Architectury Still need to figure out how to register built-in resource packs on forge --- .gitignore | 32 ++-- build.gradle | 116 +++++------ common/build.gradle | 34 ++++ .../cullleaves/CullLeavesClient.java | 10 + .../cullleaves/config/CullLeavesConfig.java | 0 .../cullleaves/mixin/MixinLeavesBlock.java | 0 .../main/resources/architectury.common.json | 2 + .../main/resources/assets/cullleaves/icon.png | Bin .../assets/cullleaves/lang/en_us.json | 0 .../assets/cullleaves/lang/pt_br.json | 0 .../assets/cullleaves/lang/ru_ru.json | 0 .../main/resources/cullleaves.mixins.json | 22 ++- .../assets/minecraft/models/block/leaves.json | 0 .../resourcepacks/smartleaves/license.txt | 0 .../resourcepacks/smartleaves/pack.mcmeta | 0 .../resourcepacks/smartleaves/pack.png | Bin fabric-like/build.gradle | 16 ++ fabric/build.gradle | 88 +++++++++ .../fabric/CullLeavesClientFabric.java | 38 ++-- .../src}/main/resources/fabric.mod.json | 4 +- forge/build.gradle | 89 +++++++++ forge/gradle.properties | 1 + .../forge/CullLeavesClientForge.java | 16 ++ forge/src/main/resources/META-INF/mods.toml | 35 ++++ forge/src/main/resources/icon.png | Bin 0 -> 12126 bytes forge/src/main/resources/pack.mcmeta | 6 + gradle.properties | 31 +-- gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 60756 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 6 + gradlew.bat | 180 +++++++++--------- quilt/build.gradle | 96 ++++++++++ quilt/gradle.properties | 1 + .../quilt/CullLeavesClientQuilt.java | 16 ++ quilt/src/main/resources/quilt.mod.json | 59 ++++++ settings.gradle | 16 +- 36 files changed, 684 insertions(+), 232 deletions(-) mode change 100755 => 100644 .gitignore mode change 100755 => 100644 build.gradle create mode 100644 common/build.gradle create mode 100755 common/src/main/java/eu/midnightdust/cullleaves/CullLeavesClient.java rename {src => common/src}/main/java/eu/midnightdust/cullleaves/config/CullLeavesConfig.java (100%) rename {src => common/src}/main/java/eu/midnightdust/cullleaves/mixin/MixinLeavesBlock.java (100%) create mode 100644 common/src/main/resources/architectury.common.json rename {src => common/src}/main/resources/assets/cullleaves/icon.png (100%) rename {src => common/src}/main/resources/assets/cullleaves/lang/en_us.json (100%) rename {src => common/src}/main/resources/assets/cullleaves/lang/pt_br.json (100%) rename {src => common/src}/main/resources/assets/cullleaves/lang/ru_ru.json (100%) rename {src => common/src}/main/resources/cullleaves.mixins.json (74%) mode change 100755 => 100644 rename {src => common/src}/main/resources/resourcepacks/smartleaves/assets/minecraft/models/block/leaves.json (100%) rename {src => common/src}/main/resources/resourcepacks/smartleaves/license.txt (100%) rename {src => common/src}/main/resources/resourcepacks/smartleaves/pack.mcmeta (100%) rename {src => common/src}/main/resources/resourcepacks/smartleaves/pack.png (100%) create mode 100644 fabric-like/build.gradle create mode 100644 fabric/build.gradle rename src/main/java/eu/midnightdust/cullleaves/CullLeavesClient.java => fabric/src/main/java/eu/midnightdust/cullleaves/fabric/CullLeavesClientFabric.java (66%) mode change 100755 => 100644 rename {src => fabric/src}/main/resources/fabric.mod.json (91%) mode change 100755 => 100644 create mode 100644 forge/build.gradle create mode 100644 forge/gradle.properties create mode 100644 forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientForge.java create mode 100644 forge/src/main/resources/META-INF/mods.toml create mode 100755 forge/src/main/resources/icon.png create mode 100644 forge/src/main/resources/pack.mcmeta mode change 100755 => 100644 gradle.properties create mode 100644 quilt/build.gradle create mode 100644 quilt/gradle.properties create mode 100644 quilt/src/main/java/eu/midnightdust/cullleaves/quilt/CullLeavesClientQuilt.java create mode 100644 quilt/src/main/resources/quilt.mod.json mode change 100755 => 100644 settings.gradle diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 index 823aca8..ccb0c56 --- a/.gitignore +++ b/.gitignore @@ -1,25 +1,19 @@ -# gradle - -.gradle/ -out/ -classes/ build/ - -# idea - -.idea/ -*.iml *.ipr +run/ *.iws - -# vscode - -.settings/ -.vscode/ +out/ +*.iml +.gradle/ +output/ bin/ +libs/ + .classpath .project - -# fabric - -run/ \ No newline at end of file +.idea/ +classes/ +.metadata +.vscode +.settings +*.launch \ No newline at end of file diff --git a/build.gradle b/build.gradle old mode 100755 new mode 100644 index 387d307..c5d41c7 --- a/build.gradle +++ b/build.gradle @@ -1,84 +1,58 @@ plugins { - id 'fabric-loom' version '0.12-SNAPSHOT' - id 'maven-publish' + id "architectury-plugin" version "3.4-SNAPSHOT" + id "dev.architectury.loom" version "1.0-SNAPSHOT" apply false } -sourceCompatibility = JavaVersion.VERSION_17 -targetCompatibility = JavaVersion.VERSION_17 - -archivesBaseName = project.archives_base_name -version = project.mod_version -group = project.maven_group +architectury { + injectInjectables = false + minecraft = rootProject.minecraft_version +} repositories { - maven { - url = "https://api.modrinth.com/maven" - } + maven { + url = "https://api.modrinth.com/maven" + } } -dependencies { - //to change the versions see the gradle.properties file - minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" +subprojects { + apply plugin: "dev.architectury.loom" - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + loom { + silentMojangMappingsLicense() + } - modImplementation "maven.modrinth:midnightlib:${project.midnightlib_version}" - include "maven.modrinth:midnightlib:${project.midnightlib_version}" + dependencies { + minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" + // The following line declares the mojmap mappings, you may use other mappings as well + //mappings loom.officialMojangMappings() + // The following line declares the yarn mappings you may select this one as well. + mappings "net.fabricmc:yarn:1.19.2+build.3:v2" + } } -processResources { - inputs.property "version", project.version +allprojects { + apply plugin: "java" + apply plugin: "architectury-plugin" + apply plugin: "maven-publish" - filesMatching("fabric.mod.json") { - expand "version": project.version - } -} - -tasks.withType(JavaCompile).configureEach { - // ensure that the encoding is set to UTF-8, no matter what the system default is - // this fixes some edge cases with special characters not displaying correctly - // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html - // If Javadoc is generated, this must be specified in that task too. - it.options.encoding = "UTF-8" - - // Minecraft 1.17 (21w19a) upwards uses Java 16. - it.options.release = 17 -} - -java { - // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task - // if it is present. - // If you remove this line, sources will not be generated. - withSourcesJar() -} - -jar { - from("LICENSE") { - rename { "${it}_${project.archivesBaseName}"} - } -} - -// configure the maven publication -publishing { - publications { - mavenJava(MavenPublication) { - // add all the jars that should be included when publishing to maven - artifact(remapJar) { - builtBy remapJar - } - artifact(sourcesJar) { - builtBy remapSourcesJar - } - } - } - - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - // Notice: This block does NOT have the same function as the block in the top level. - // The repositories here will be used for publishing your artifact, not for - // retrieving dependencies. - } + archivesBaseName = rootProject.archives_base_name + version = rootProject.mod_version + group = rootProject.maven_group + + repositories { + // Add repositories to retrieve artifacts from in here. + // You should only use this when depending on other mods because + // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html + // for more information about repositories. + } + + tasks.withType(JavaCompile) { + options.encoding = "UTF-8" + options.release = 17 + } + + java { + withSourcesJar() + } } diff --git a/common/build.gradle b/common/build.gradle new file mode 100644 index 0000000..8795389 --- /dev/null +++ b/common/build.gradle @@ -0,0 +1,34 @@ +architectury { + injectInjectables = false + common(rootProject.enabled_platforms.split(",")) +} + +loom { +} +repositories { + maven { url "https://api.modrinth.com/maven" } +} + +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}" + modCompileOnlyApi "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-fabric" + + // Remove the next line if you don't want to depend on the API + modApi "dev.architectury:architectury:${rootProject.architectury_version}" +} + +publishing { + publications { + mavenCommon(MavenPublication) { + artifactId = rootProject.archives_base_name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } +} diff --git a/common/src/main/java/eu/midnightdust/cullleaves/CullLeavesClient.java b/common/src/main/java/eu/midnightdust/cullleaves/CullLeavesClient.java new file mode 100755 index 0000000..7ee8275 --- /dev/null +++ b/common/src/main/java/eu/midnightdust/cullleaves/CullLeavesClient.java @@ -0,0 +1,10 @@ +package eu.midnightdust.cullleaves; + +import eu.midnightdust.cullleaves.config.CullLeavesConfig; + +public class CullLeavesClient { + + public static void onInitializeClient() { + CullLeavesConfig.init("cullleaves", CullLeavesConfig.class); + } +} diff --git a/src/main/java/eu/midnightdust/cullleaves/config/CullLeavesConfig.java b/common/src/main/java/eu/midnightdust/cullleaves/config/CullLeavesConfig.java similarity index 100% rename from src/main/java/eu/midnightdust/cullleaves/config/CullLeavesConfig.java rename to common/src/main/java/eu/midnightdust/cullleaves/config/CullLeavesConfig.java diff --git a/src/main/java/eu/midnightdust/cullleaves/mixin/MixinLeavesBlock.java b/common/src/main/java/eu/midnightdust/cullleaves/mixin/MixinLeavesBlock.java similarity index 100% rename from src/main/java/eu/midnightdust/cullleaves/mixin/MixinLeavesBlock.java rename to common/src/main/java/eu/midnightdust/cullleaves/mixin/MixinLeavesBlock.java diff --git a/common/src/main/resources/architectury.common.json b/common/src/main/resources/architectury.common.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/common/src/main/resources/architectury.common.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/src/main/resources/assets/cullleaves/icon.png b/common/src/main/resources/assets/cullleaves/icon.png similarity index 100% rename from src/main/resources/assets/cullleaves/icon.png rename to common/src/main/resources/assets/cullleaves/icon.png diff --git a/src/main/resources/assets/cullleaves/lang/en_us.json b/common/src/main/resources/assets/cullleaves/lang/en_us.json similarity index 100% rename from src/main/resources/assets/cullleaves/lang/en_us.json rename to common/src/main/resources/assets/cullleaves/lang/en_us.json diff --git a/src/main/resources/assets/cullleaves/lang/pt_br.json b/common/src/main/resources/assets/cullleaves/lang/pt_br.json similarity index 100% rename from src/main/resources/assets/cullleaves/lang/pt_br.json rename to common/src/main/resources/assets/cullleaves/lang/pt_br.json diff --git a/src/main/resources/assets/cullleaves/lang/ru_ru.json b/common/src/main/resources/assets/cullleaves/lang/ru_ru.json similarity index 100% rename from src/main/resources/assets/cullleaves/lang/ru_ru.json rename to common/src/main/resources/assets/cullleaves/lang/ru_ru.json diff --git a/src/main/resources/cullleaves.mixins.json b/common/src/main/resources/cullleaves.mixins.json old mode 100755 new mode 100644 similarity index 74% rename from src/main/resources/cullleaves.mixins.json rename to common/src/main/resources/cullleaves.mixins.json index 32a524a..19cd774 --- a/src/main/resources/cullleaves.mixins.json +++ b/common/src/main/resources/cullleaves.mixins.json @@ -1,11 +1,13 @@ -{ - "required": true, - "package": "eu.midnightdust.cullleaves.mixin", - "compatibilityLevel": "JAVA_8", - "client": [ - "MixinLeavesBlock" - ], - "injectors": { - "defaultRequire": 1 - } +{ + "required": true, + "package": "eu.midnightdust.cullleaves.mixin", + "compatibilityLevel": "JAVA_17", + "client": [ + "MixinLeavesBlock" + ], + "mixins": [ + ], + "injectors": { + "defaultRequire": 1 + } } \ No newline at end of file diff --git a/src/main/resources/resourcepacks/smartleaves/assets/minecraft/models/block/leaves.json b/common/src/main/resources/resourcepacks/smartleaves/assets/minecraft/models/block/leaves.json similarity index 100% rename from src/main/resources/resourcepacks/smartleaves/assets/minecraft/models/block/leaves.json rename to common/src/main/resources/resourcepacks/smartleaves/assets/minecraft/models/block/leaves.json diff --git a/src/main/resources/resourcepacks/smartleaves/license.txt b/common/src/main/resources/resourcepacks/smartleaves/license.txt similarity index 100% rename from src/main/resources/resourcepacks/smartleaves/license.txt rename to common/src/main/resources/resourcepacks/smartleaves/license.txt diff --git a/src/main/resources/resourcepacks/smartleaves/pack.mcmeta b/common/src/main/resources/resourcepacks/smartleaves/pack.mcmeta similarity index 100% rename from src/main/resources/resourcepacks/smartleaves/pack.mcmeta rename to common/src/main/resources/resourcepacks/smartleaves/pack.mcmeta diff --git a/src/main/resources/resourcepacks/smartleaves/pack.png b/common/src/main/resources/resourcepacks/smartleaves/pack.png similarity index 100% rename from src/main/resources/resourcepacks/smartleaves/pack.png rename to common/src/main/resources/resourcepacks/smartleaves/pack.png diff --git a/fabric-like/build.gradle b/fabric-like/build.gradle new file mode 100644 index 0000000..e73e3f4 --- /dev/null +++ b/fabric-like/build.gradle @@ -0,0 +1,16 @@ +architectury { + injectInjectables = false + common(rootProject.enabled_platforms.split(",")) +} + +loom { +} + +dependencies { + modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" + modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" + // Remove the next line if you don't want to depend on the API + modApi "dev.architectury:architectury-fabric:${rootProject.architectury_version}" + + compileClasspath(project(path: ":common", configuration: "namedElements")) { transitive false } +} diff --git a/fabric/build.gradle b/fabric/build.gradle new file mode 100644 index 0000000..1b86738 --- /dev/null +++ b/fabric/build.gradle @@ -0,0 +1,88 @@ +plugins { + id "com.github.johnrengelman.shadow" version "7.1.2" +} + +architectury { + injectInjectables = false + platformSetupLoomIde() + fabric() +} + +loom { +} +repositories { + maven { url "https://api.modrinth.com/maven" } +} + +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 +} + +dependencies { + modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" + modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" + // Remove the next line if you don't want to depend on the API + //modApi "dev.architectury:architectury-fabric:${rootProject.architectury_version}" + modImplementation "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-fabric" + include "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-fabric" + + common(project(path: ":common", configuration: "namedElements")) { transitive false } + shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } + common(project(path: ":fabric-like", configuration: "namedElements")) { transitive false } + shadowCommon(project(path: ":fabric-like", configuration: "transformProductionFabric")) { transitive false } +} + +processResources { + inputs.property "version", project.version + + filesMatching("fabric.mod.json") { + expand "version": project.version + } +} + +shadowJar { + exclude "architectury.common.json" + + configurations = [project.configurations.shadowCommon] + classifier "dev-shadow" +} + +remapJar { + input.set shadowJar.archiveFile + dependsOn shadowJar + classifier null +} + +jar { + classifier "dev" +} + +sourcesJar { + def commonSources = project(":common").sourcesJar + dependsOn commonSources + from commonSources.archiveFile.map { zipTree(it) } +} + +components.java { + withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { + skip() + } +} + +publishing { + publications { + mavenFabric(MavenPublication) { + artifactId = rootProject.archives_base_name + "-" + project.name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } +} diff --git a/src/main/java/eu/midnightdust/cullleaves/CullLeavesClient.java b/fabric/src/main/java/eu/midnightdust/cullleaves/fabric/CullLeavesClientFabric.java old mode 100755 new mode 100644 similarity index 66% rename from src/main/java/eu/midnightdust/cullleaves/CullLeavesClient.java rename to fabric/src/main/java/eu/midnightdust/cullleaves/fabric/CullLeavesClientFabric.java index ced9206..bc20d2f --- a/src/main/java/eu/midnightdust/cullleaves/CullLeavesClient.java +++ b/fabric/src/main/java/eu/midnightdust/cullleaves/fabric/CullLeavesClientFabric.java @@ -1,20 +1,18 @@ -package eu.midnightdust.cullleaves; - -import eu.midnightdust.cullleaves.config.CullLeavesConfig; -import net.fabricmc.api.ClientModInitializer; -import net.fabricmc.fabric.api.resource.ResourceManagerHelper; -import net.fabricmc.fabric.api.resource.ResourcePackActivationType; -import net.fabricmc.loader.ModContainer; -import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.util.Identifier; - -public class CullLeavesClient implements ClientModInitializer { - - public void onInitializeClient() { - CullLeavesConfig.init("cullleaves", CullLeavesConfig.class); - - FabricLoader.getInstance().getModContainer("cullleaves").ifPresent(modContainer -> { - ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("cullleaves:smartleaves"), modContainer, ResourcePackActivationType.NORMAL); - }); - } -} +package eu.midnightdust.cullleaves.fabric; + +import eu.midnightdust.cullleaves.CullLeavesClient; +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.resource.ResourceManagerHelper; +import net.fabricmc.fabric.api.resource.ResourcePackActivationType; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.util.Identifier; + +public class CullLeavesClientFabric implements ClientModInitializer { + @Override + public void onInitializeClient() { + CullLeavesClient.onInitializeClient(); + FabricLoader.getInstance().getModContainer("cullleaves").ifPresent(modContainer -> { + ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("cullleaves:smartleaves"), modContainer, ResourcePackActivationType.NORMAL); + }); + } +} diff --git a/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json old mode 100755 new mode 100644 similarity index 91% rename from src/main/resources/fabric.mod.json rename to fabric/src/main/resources/fabric.mod.json index ddfe397..791e271 --- a/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -21,7 +21,7 @@ "environment": "client", "entrypoints": { "client": [ - "eu.midnightdust.cullleaves.CullLeavesClient" + "eu.midnightdust.cullleaves.fabric.CullLeavesClientFabric" ] }, @@ -33,4 +33,4 @@ "mixins": [ "cullleaves.mixins.json" ] -} +} \ No newline at end of file diff --git a/forge/build.gradle b/forge/build.gradle new file mode 100644 index 0000000..941f077 --- /dev/null +++ b/forge/build.gradle @@ -0,0 +1,89 @@ +plugins { + id "com.github.johnrengelman.shadow" version "7.1.2" +} + +architectury { + injectInjectables = false + platformSetupLoomIde() + forge() +} + +loom { + forge { + mixinConfig "cullleaves.mixins.json" + } +} +repositories { + maven { url "https://api.modrinth.com/maven" } +} + +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 +} + +dependencies { + forge "net.minecraftforge:forge:${rootProject.forge_version}" + // Remove the next line if you don't want to depend on the API + //modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}" + modImplementation "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-forge" + include "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-forge" + + common(project(path: ":common", configuration: "namedElements")) { transitive false } + shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } +} + +processResources { + inputs.property "version", project.version + + filesMatching("META-INF/mods.toml") { + expand "version": project.version + } +} + +shadowJar { + exclude "fabric.mod.json" + exclude "architectury.common.json" + + configurations = [project.configurations.shadowCommon] + classifier "dev-shadow" +} + +remapJar { + input.set shadowJar.archiveFile + dependsOn shadowJar + classifier null +} + +jar { + classifier "dev" +} + +sourcesJar { + def commonSources = project(":common").sourcesJar + dependsOn commonSources + from commonSources.archiveFile.map { zipTree(it) } +} + +components.java { + withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { + skip() + } +} + +publishing { + publications { + mavenForge(MavenPublication) { + artifactId = rootProject.archives_base_name + "-" + project.name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } +} diff --git a/forge/gradle.properties b/forge/gradle.properties new file mode 100644 index 0000000..32f842a --- /dev/null +++ b/forge/gradle.properties @@ -0,0 +1 @@ +loom.platform=forge \ No newline at end of file diff --git a/forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientForge.java b/forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientForge.java new file mode 100644 index 0000000..c486fc3 --- /dev/null +++ b/forge/src/main/java/eu/midnightdust/cullleaves/forge/CullLeavesClientForge.java @@ -0,0 +1,16 @@ +package eu.midnightdust.cullleaves.forge; + +import eu.midnightdust.cullleaves.CullLeavesClient; +import eu.midnightdust.lib.config.MidnightConfig; +import net.minecraftforge.client.ConfigScreenHandler; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; + +@Mod("cullleaves") +public class CullLeavesClientForge { + public CullLeavesClientForge() { + CullLeavesClient.onInitializeClient(); + ModLoadingContext.get().registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () -> + new ConfigScreenHandler.ConfigScreenFactory((client, parent) -> MidnightConfig.getScreen(parent, "cullleaves"))); + } +} diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml new file mode 100644 index 0000000..7638c79 --- /dev/null +++ b/forge/src/main/resources/META-INF/mods.toml @@ -0,0 +1,35 @@ +modLoader = "javafml" +loaderVersion = "[43,)" +#issueTrackerURL = "" +license = "MIT" + +[[mods]] +modId = "cullleaves" +version = "${version}" +displayName = "CullLeaves" +authors = "Motschen, TeamMidnightDust" +description = ''' +Adds culling to leaf blocks, providing a huge performance boost over vanilla. +''' +logoFile = "icon.png" + +[[dependencies.cullleaves]] +modId = "forge" +mandatory = true +versionRange = "[43,)" +ordering = "NONE" +side = "CLIENT" + +[[dependencies.cullleaves]] +modId = "minecraft" +mandatory = true +versionRange = "[1.19.2,)" +ordering = "NONE" +side = "CLIENT" + +[[dependencies.cullleaves]] +modId = "midnightlib" +mandatory = true +versionRange = "[1.0.0,)" +ordering = "NONE" +side = "CLIENT" \ No newline at end of file diff --git a/forge/src/main/resources/icon.png b/forge/src/main/resources/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..8b0898f06bdbf2ec33b19345214f1c7097a2a1f5 GIT binary patch literal 12126 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 USJ$lECIA2c07*qoM6N<$f)jUG&Hw-a literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/pack.mcmeta b/forge/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..5cae9ae --- /dev/null +++ b/forge/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "CullLeaves", + "pack_format": 9 + } +} diff --git a/gradle.properties b/gradle.properties old mode 100755 new mode 100644 index e14cc55..9f9b861 --- a/gradle.properties +++ b/gradle.properties @@ -1,18 +1,19 @@ -# Done to increase the memory available to gradle. -org.gradle.jvmargs=-Xmx1G +org.gradle.jvmargs=-Xmx4096M -# Fabric Properties - # check these on https://fabricmc.net/use - minecraft_version=1.19-rc2 - yarn_mappings=1.19-rc2+build.1 - loader_version=0.14.6 +minecraft_version=1.19.2 +enabled_platforms=quilt,fabric,forge -# Mod Properties - mod_version = 2.3.4 - maven_group = eu.midnightdust - archives_base_name = cullleaves +archives_base_name=cullleaves +mod_version=3.0.0 +maven_group=eu.midnightdust -# Dependencies - # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_version=0.55.1+1.19 - midnightlib_version=0.5.2 +architectury_version=6.2.43 +midnightlib_version=1.0.0 + +fabric_loader_version=0.14.9 +fabric_api_version=0.59.0+1.19.2 + +forge_version=1.19.2-43.0.8 + +quilt_loader_version=0.17.2-beta.3 +quilt_fabric_api_version=4.0.0-beta.7+0.59.0-1.19.2 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..249e5832f090a2944b7473328c07c9755baa3196 100644 GIT binary patch delta 10158 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 delta 9041 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ffed3a2..ae04661 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 1b6c787..a69d9cb 100755 --- a/gradlew +++ b/gradlew @@ -205,6 +205,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat index 107acd3..53a6b23 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,89 +1,91 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/quilt/build.gradle b/quilt/build.gradle new file mode 100644 index 0000000..d8f28aa --- /dev/null +++ b/quilt/build.gradle @@ -0,0 +1,96 @@ +plugins { + id "com.github.johnrengelman.shadow" version "7.1.2" +} + +repositories { + maven { url "https://maven.quiltmc.org/repository/release/" } + maven { url "https://api.modrinth.com/maven" } +} + +architectury { + injectInjectables = false + platformSetupLoomIde() + loader("quilt") +} + +loom { +} + +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 + developmentQuilt.extendsFrom common +} + +dependencies { + modImplementation "org.quiltmc:quilt-loader:${rootProject.quilt_loader_version}" + modApi "org.quiltmc.quilted-fabric-api:quilted-fabric-api:${rootProject.quilt_fabric_api_version}" + // Remove the next few lines if you don't want to depend on the API + //modApi("dev.architectury:architectury-fabric:${rootProject.architectury_version}") { + // // We must not pull Fabric Loader from Architectury Fabric + // exclude group: "net.fabricmc" + // exclude group: "net.fabricmc.fabric-api" + //} + modImplementation "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-quilt" + include "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-quilt" + + common(project(path: ":common", configuration: "namedElements")) { transitive false } + shadowCommon(project(path: ":common", configuration: "transformProductionQuilt")) { transitive false } + common(project(path: ":fabric-like", configuration: "namedElements")) { transitive false } + shadowCommon(project(path: ":fabric-like", configuration: "transformProductionQuilt")) { transitive false } +} + +processResources { + inputs.property "group", rootProject.maven_group + inputs.property "version", project.version + + filesMatching("quilt.mod.json") { + expand "group": rootProject.maven_group, + "version": project.version + } +} + +shadowJar { + exclude "architectury.common.json" + + configurations = [project.configurations.shadowCommon] + classifier "dev-shadow" +} + +remapJar { + input.set shadowJar.archiveFile + dependsOn shadowJar + classifier null +} + +jar { + classifier "dev" +} + +sourcesJar { + def commonSources = project(":common").sourcesJar + dependsOn commonSources + from commonSources.archiveFile.map { zipTree(it) } +} + +components.java { + withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { + skip() + } +} + +publishing { + publications { + mavenQuilt(MavenPublication) { + artifactId = rootProject.archives_base_name + "-" + project.name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } +} diff --git a/quilt/gradle.properties b/quilt/gradle.properties new file mode 100644 index 0000000..96758ce --- /dev/null +++ b/quilt/gradle.properties @@ -0,0 +1 @@ +loom.platform=quilt \ No newline at end of file diff --git a/quilt/src/main/java/eu/midnightdust/cullleaves/quilt/CullLeavesClientQuilt.java b/quilt/src/main/java/eu/midnightdust/cullleaves/quilt/CullLeavesClientQuilt.java new file mode 100644 index 0000000..df34141 --- /dev/null +++ b/quilt/src/main/java/eu/midnightdust/cullleaves/quilt/CullLeavesClientQuilt.java @@ -0,0 +1,16 @@ +package eu.midnightdust.cullleaves.quilt; + +import eu.midnightdust.cullleaves.CullLeavesClient; +import net.minecraft.util.Identifier; +import org.quiltmc.loader.api.ModContainer; +import org.quiltmc.qsl.base.api.entrypoint.client.ClientModInitializer; +import org.quiltmc.qsl.resource.loader.api.ResourceLoader; +import org.quiltmc.qsl.resource.loader.api.ResourcePackActivationType; + +public class CullLeavesClientQuilt implements ClientModInitializer { + @Override + public void onInitializeClient(ModContainer mod) { + CullLeavesClient.onInitializeClient(); + ResourceLoader.registerBuiltinResourcePack(new Identifier("cullleaves:smartleaves"), mod, ResourcePackActivationType.NORMAL); + } +} diff --git a/quilt/src/main/resources/quilt.mod.json b/quilt/src/main/resources/quilt.mod.json new file mode 100644 index 0000000..ad6d33b --- /dev/null +++ b/quilt/src/main/resources/quilt.mod.json @@ -0,0 +1,59 @@ +{ + "schema_version": 1, + "quilt_loader": { + "group": "${group}", + "id": "cullleaves", + "version": "${version}", + "name": "Cull Leaves", + "description": "Adds culling to leaf blocks, providing a huge performance boost over vanilla.", + "authors": [ + "Motschen", + "TeamMidnightDust" + ], + "contact": { + "homepage": "https://www.midnightdust.eu/", + "sources": "https://github.com/TeamMidnightDust/MidnightLib", + "issues": "https://github.com/TeamMidnightDust/MidnightLib/issues" + }, + "license": "MIT", + "icon": "assets/cullleaves/icon.png", + "intermediate_mappings": "net.fabricmc:intermediary", + "environment": "*", + "entrypoints": { + "client_init": [ + "eu.midnightdust.cullleaves.quilt.CullLeavesClientQuilt" + ] + }, + "depends": [ + { + "id": "quilt_loader", + "version": "*" + }, + { + "id": "quilt_base", + "version": "*" + }, + { + "id": "midnightlib", + "version": "*" + } + ], + "metadata": { + "name": "Cull Leaves (Quilt)", + "contributors": { + "Motschen": "Author", + "TeamMidnightDust": "Mascot" + }, + "contact": { + "email": "mail@midnightdust.eu", + "homepage": "https://modrinth.com/mod/cullleaves", + "issues": "https://github.com/TeamMidnightDust/CullLeaves/issues", + "sources": "https://github.com/TeamMidnightDust/CullLeaves" + }, + "icon": "assets/cullleaves/icon.png" + } + }, + "mixin": [ + "cullleaves.mixins.json" + ] +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle old mode 100755 new mode 100644 index 5b60df3..231e72f --- a/settings.gradle +++ b/settings.gradle @@ -1,10 +1,16 @@ pluginManagement { repositories { - jcenter() - maven { - name = 'Fabric' - url = 'https://maven.fabricmc.net/' - } + maven { url "https://maven.fabricmc.net/" } + maven { url "https://maven.architectury.dev/" } + maven { url "https://maven.minecraftforge.net/" } gradlePluginPortal() } } + +include("common") +include("fabric-like") +include("fabric") +include("quilt") +include("forge") + +rootProject.name = "cullleaves"