diff --git a/build.gradle b/build.gradle index 3db0d58..0ea3408 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'dev.architectury.loom' version '1.13.467' apply false - id 'architectury-plugin' version '3.4.162' + id 'dev.architectury.loom-no-remap' version '1.14-SNAPSHOT' apply false + id 'architectury-plugin' version '3.5-SNAPSHOT' id 'com.gradleup.shadow' version '8.3.6' apply false } @@ -14,7 +14,7 @@ allprojects { } subprojects { - apply plugin: 'dev.architectury.loom' + apply plugin: 'dev.architectury.loom-no-remap' apply plugin: 'architectury-plugin' apply plugin: 'maven-publish' @@ -31,13 +31,8 @@ subprojects { // for more information about repositories. } - loom { - silentMojangMappingsLicense() - } - dependencies { minecraft "net.minecraft:minecraft:$rootProject.minecraft_version" - mappings loom.officialMojangMappings() } java { @@ -46,12 +41,12 @@ subprojects { // If you remove this line, sources will not be generated. withSourcesJar() - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 + sourceCompatibility = JavaVersion.VERSION_25 + targetCompatibility = JavaVersion.VERSION_25 } tasks.withType(JavaCompile).configureEach { - it.options.release = 21 + it.options.release = 25 } // Configure Maven publishing. diff --git a/common/build.gradle b/common/build.gradle index 4134746..1a9a757 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,8 +1,7 @@ architectury { - common rootProject.enabled_platforms.split(',') + common rootProject.enabled_platforms.toString().split(',') } - sourceSets { main { resources { @@ -15,8 +14,8 @@ dependencies { // We depend on Fabric Loader here to use the Fabric @Environment annotations, // which get remapped to the correct annotations on each platform. // Do NOT use other classes from Fabric Loader. - modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version" + implementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version" // Architectury API. This is optional, and you can comment it out if you don't need it. - modImplementation "dev.architectury:architectury:$rootProject.architectury_api_version" + api "dev.architectury:architectury:$rootProject.architectury_api_version" } diff --git a/common/src/main/generated/assets/nuggetmod/models/item/nugget_spear_in_hand.json b/common/src/main/generated/assets/nuggetmod/models/item/nugget_spear_in_hand.json new file mode 100644 index 0000000..8d14ee5 --- /dev/null +++ b/common/src/main/generated/assets/nuggetmod/models/item/nugget_spear_in_hand.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/spear_in_hand", + "textures": { + "layer0": "nuggetmod:item/nugget_spear_in_hand" + } +} \ No newline at end of file diff --git a/common/src/main/generated/data/nuggetmod/advancement/recipes/food/nugget_cake.json b/common/src/main/generated/data/nuggetmod/advancement/recipes/food/nugget_cake.json new file mode 100644 index 0000000..46c2076 --- /dev/null +++ b/common/src/main/generated/data/nuggetmod/advancement/recipes/food/nugget_cake.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nugget": { + "conditions": { + "items": [ + { + "items": "nuggetmod:nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "nuggetmod:nugget_cake" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nugget" + ] + ], + "rewards": { + "recipes": [ + "nuggetmod:nugget_cake" + ] + } +} \ No newline at end of file diff --git a/common/src/main/generated/data/nuggetmod/recipe/nugget_cake.json b/common/src/main/generated/data/nuggetmod/recipe/nugget_cake.json new file mode 100644 index 0000000..bf8ca1a --- /dev/null +++ b/common/src/main/generated/data/nuggetmod/recipe/nugget_cake.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "E": "nuggetmod:raw_nugget", + "M": "nuggetmod:nugget_block", + "S": "minecraft:sugar", + "W": "nuggetmod:nugget" + }, + "pattern": [ + "MMM", + "SES", + "WWW" + ], + "result": { + "count": 1, + "id": "nuggetmod:nugget_cake" + } +} \ No newline at end of file diff --git a/common/src/main/generated/data/nuggetmod/worldgen/configured_feature/nugget_ore.json b/common/src/main/generated/data/nuggetmod/worldgen/configured_feature/nugget_ore.json index 443d7c2..c175612 100644 --- a/common/src/main/generated/data/nuggetmod/worldgen/configured_feature/nugget_ore.json +++ b/common/src/main/generated/data/nuggetmod/worldgen/configured_feature/nugget_ore.json @@ -2,7 +2,7 @@ "type": "minecraft:ore", "config": { "discard_chance_on_air_exposure": 0.0, - "size": 12, + "size": 9, "targets": [ { "state": { diff --git a/common/src/main/generated/data/nuggetmod/worldgen/placed_feature/nugget_ore_placed.json b/common/src/main/generated/data/nuggetmod/worldgen/placed_feature/nugget_ore_placed.json index 540d7ba..6d610a5 100644 --- a/common/src/main/generated/data/nuggetmod/worldgen/placed_feature/nugget_ore_placed.json +++ b/common/src/main/generated/data/nuggetmod/worldgen/placed_feature/nugget_ore_placed.json @@ -3,7 +3,7 @@ "placement": [ { "type": "minecraft:count", - "count": 14 + "count": 12 }, { "type": "minecraft:in_square" diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/block/ModBlocks.java b/common/src/main/java/dev/sillyangel/nuggetmod/block/ModBlocks.java index fa511d6..dfbe6ab 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/block/ModBlocks.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/block/ModBlocks.java @@ -3,6 +3,7 @@ package dev.sillyangel.nuggetmod.block; import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.RegistrySupplier; import dev.sillyangel.nuggetmod.NuggetMod; +import net.minecraft.world.level.block.CakeBlock; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.DropExperienceBlock; @@ -20,6 +21,12 @@ public class ModBlocks { public static final DeferredRegister BLOCKS = DeferredRegister.create(NuggetMod.MOD_ID, Registries.BLOCK); public static final DeferredRegister BLOCK_ITEMS = DeferredRegister.create(NuggetMod.MOD_ID, Registries.ITEM); + public static final RegistrySupplier NUGGET_CAKE = registerBlockWithItem("nugget_cake", + () -> new CakeBlock(createBlockSettings("nugget_cake") + .strength(0.5f) + .forceSolidOn() + .sound(SoundType.WOOL))); + public static final RegistrySupplier NUGGET_BLOCK = registerBlockWithItem("nugget_block", () -> new Block(createBlockSettings("nugget_block") .strength(4f) diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItemGroups.java b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItemGroups.java index dd5c127..caed216 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItemGroups.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItemGroups.java @@ -54,7 +54,7 @@ public class ModItemGroups { entries.accept(ModItems.NUGGET_SMITHING_TEMPLATE.get()); entries.accept(ModItems.NUGGET_MUSIC_DISC.get()); - entries.accept(ModItems.NUGGET_CAKE.get()); + entries.accept(ModBlocks.NUGGET_CAKE.get()); }).build()); public static void init() { diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java index 618ea15..b99c5ed 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java @@ -17,9 +17,6 @@ public class ModItems { public static final RegistrySupplier NUGGET = ITEMS.register("nugget", () -> new Item(createSettings("nugget").food(ModFoodComponents.NUGGET))); - public static final RegistrySupplier NUGGET_CAKE = ITEMS.register("nugget_cake", - () -> new Item(createSettings("nugget_cake"))); - public static final RegistrySupplier RAW_NUGGET = ITEMS.register("raw_nugget", () -> new Item(createSettings("raw_nugget"))); diff --git a/fabric/build.gradle b/fabric/build.gradle index 10e1ae5..d63d0c8 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -18,40 +18,52 @@ configurations { // Files in this configuration will be bundled into your mod using the Shadow plugin. // Don't use the `shadow` configuration from the plugin itself as it's meant for excluding files. - shadowBundle { + shadowCommon { canBeResolved = true canBeConsumed = false } + + apiElements { + outgoing.artifacts.clear() + outgoing.artifact(shadowJar) + } + runtimeElements { + outgoing.artifacts.clear() + outgoing.artifact(shadowJar) + } } dependencies { - modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version" + api "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version" // Fabric API. This is technically optional, but you probably want it anyway. - modImplementation "net.fabricmc.fabric-api:fabric-api:$rootProject.fabric_api_version" + api "net.fabricmc.fabric-api:fabric-api:$rootProject.fabric_api_version" // Architectury API. This is optional, and you can comment it out if you don't need it. - modImplementation "dev.architectury:architectury-fabric:$rootProject.architectury_api_version" + api "dev.architectury:architectury-fabric:$rootProject.architectury_api_version" - common(project(path: ':common', configuration: 'namedElements')) { transitive = false } - shadowBundle project(path: ':common', configuration: 'transformProductionFabric') + common(project(path: ':common')) { transitive = false } + shadowCommon project(path: ':common', configuration: 'transformProductionFabric') } processResources { - inputs.property 'version', project.version + inputs.property "version", project.version - filesMatching('fabric.mod.json') { - expand version: inputs.properties.version + filesMatching("fabric.mod.json") { + expand "version": inputs.properties.version } } -shadowJar { - configurations = [project.configurations.shadowBundle] - archiveClassifier = 'dev-shadow' +jar { + archiveClassifier = "raw" } -remapJar { - inputFile.set shadowJar.archiveFile +shadowJar { + dependsOn(jar) + from(zipTree(jar.archiveFile)) + configurations = [project.configurations.shadowCommon] + archiveClassifier = null + from rootProject.file("LICENSE.md") } fabricApi { diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/datagen/ModModelProvider.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/datagen/ModModelProvider.java index 56f584d..ddd15a8 100644 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/datagen/ModModelProvider.java +++ b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/datagen/ModModelProvider.java @@ -21,6 +21,7 @@ public class ModModelProvider extends FabricModelProvider { blockStateModelGenerator.createTrivialCube(ModBlocks.RAW_NUGGET_BLOCK.get()); blockStateModelGenerator.createTrivialCube(ModBlocks.NUGGET_ORE.get()); blockStateModelGenerator.createTrivialCube(ModBlocks.NUGGET_DEEPSLATE_ORE.get()); +// blockStateModelGenerator.blockStateOutput.accept(); } // Items are generated here @Override diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/datagen/ModRecipeProvider.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/datagen/ModRecipeProvider.java index b26057c..7c20a74 100644 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/datagen/ModRecipeProvider.java +++ b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/datagen/ModRecipeProvider.java @@ -51,14 +51,14 @@ public class ModRecipeProvider extends FabricRecipeProvider { .save(recipeExporter); // cake is a lie - shaped(RecipeCategory.FOOD, ModItems.NUGGET_CAKE.get()) + shaped(RecipeCategory.FOOD, ModBlocks.NUGGET_CAKE.get()) .pattern("MMM") .pattern("SES") .pattern("WWW") .define('M', ModBlocks.NUGGET_BLOCK.get()) .define('S', Items.SUGAR) - .define('E', ModItems.RAW_NUGGET) - .define('W', ModItems.NUGGET) + .define('E', ModItems.RAW_NUGGET.get()) + .define('W', ModItems.NUGGET.get()) .unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())) .save(output); diff --git a/gradle.properties b/gradle.properties index 858395b..f5c69cc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,6 @@ # Done to increase the memory available to Gradle. -org.gradle.jvmargs=-Xmx2G +org.gradle.jvmargs=-Xmx1G +org.gradle.daemon=true org.gradle.parallel=true # Mod properties @@ -9,10 +10,10 @@ archives_name = nuggetmod enabled_platforms = fabric,neoforge # Minecraft properties -minecraft_version = 1.21.11 +minecraft_version = 26.1 # Dependencies architectury_api_version = 19.0.1 -fabric_loader_version = 0.18.4 -fabric_api_version = 0.140.2+1.21.11 -neoforge_version = 21.11.17-beta +fabric_loader_version = 0.18.5 +fabric_api_version = 0.144.3+26.1 +neoforge_version = 26.1.0.5-beta diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e644113..d997cfc 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ca025c8..c385eaa 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists +zipStorePath=wrapper/dists \ No newline at end of file diff --git a/gradlew b/gradlew index b740cf1..adff685 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -84,7 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -112,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -170,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -203,15 +203,14 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 25da30d..c4bdd3a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -68,11 +70,10 @@ 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 %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/neoforge/build.gradle b/neoforge/build.gradle index da5c1f1..b91f670 100644 --- a/neoforge/build.gradle +++ b/neoforge/build.gradle @@ -18,10 +18,19 @@ configurations { // Files in this configuration will be bundled into your mod using the Shadow plugin. // Don't use the `shadow` configuration from the plugin itself as it's meant for excluding files. - shadowBundle { + shadowCommon { canBeResolved = true canBeConsumed = false } + + apiElements { + outgoing.artifacts.clear() + outgoing.artifact(shadowJar) + } + runtimeElements { + outgoing.artifacts.clear() + outgoing.artifact(shadowJar) + } } repositories { @@ -35,10 +44,10 @@ dependencies { neoForge "net.neoforged:neoforge:$rootProject.neoforge_version" // Architectury API. This is optional, and you can comment it out if you don't need it. - modImplementation "dev.architectury:architectury-neoforge:$rootProject.architectury_api_version" + api "dev.architectury:architectury-neoforge:$rootProject.architectury_api_version" - common(project(path: ':common', configuration: 'namedElements')) { transitive = false } - shadowBundle project(path: ':common', configuration: 'transformProductionNeoForge') + common(project(path: ':common')) { transitive = false } + shadowCommon project(path: ':common', configuration: 'transformProductionNeoForge') } processResources { @@ -49,11 +58,14 @@ processResources { } } -shadowJar { - configurations = [project.configurations.shadowBundle] - archiveClassifier = 'dev-shadow' +jar { + archiveClassifier = "raw" } -remapJar { - inputFile.set shadowJar.archiveFile +shadowJar { + dependsOn(jar) + from(zipTree(jar.archiveFile)) + configurations = [project.configurations.shadowCommon] + archiveClassifier = null + from rootProject.file("LICENSE.md") } diff --git a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/item/ModItemGroups.java b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/item/ModItemGroups.java index e90f039..6ecc37c 100644 --- a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/item/ModItemGroups.java +++ b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/item/ModItemGroups.java @@ -52,6 +52,8 @@ public class ModItemGroups { entries.accept(ModItems.NUGGET_HORSE_ARMOR.get()); entries.accept(ModItems.NUGGET_SMITHING_TEMPLATE.get()); entries.accept(ModItems.NUGGET_MUSIC_DISC.get()); + + entries.accept(ModBlocks.NUGGET_CAKE.get()); }).build()); public static void registerItemGroups(IEventBus eventBus) { diff --git a/settings.gradle b/settings.gradle index 8711599..2e02a3d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,7 +2,7 @@ pluginManagement { repositories { maven { url = 'https://maven.fabricmc.net/' } maven { url = 'https://maven.architectury.dev/' } - maven { url = 'https://files.minecraftforge.net/maven/' } + maven { url = 'https://maven.neoforged.net/releases/' } gradlePluginPortal() } }