From 3b686d4bdb4ef445bff2030821e09cda6285221e Mon Sep 17 00:00:00 2001 From: Gareth Williams Date: Sat, 20 Jul 2024 19:49:46 +0100 Subject: [PATCH] Fix recipes --- .gitignore | 3 +- CHANGELOG.md | 4 ++ common/build.gradle | 2 + .../6a0f5e15c385463c018bca1039790989fecb37f3 | 9 ++++ .../redstone/invisible_mossy_plate.json | 32 +++++++++++++ .../redstone/invisible_obsidian_plate.json | 32 +++++++++++++ .../recipes/redstone/mossy_plate.json | 32 +++++++++++++ .../recipes/redstone/obsidian_plate.json | 32 +++++++++++++ .../recipe/invisible_mossy_plate.json | 19 ++++++++ .../recipe/invisible_obsidian_plate.json | 19 ++++++++ .../data/playerplates/recipe/mossy_plate.json | 16 +++++++ .../playerplates/recipe/obsidian_plate.json | 16 +++++++ .../{blocks => block}/mineable/pickaxe.json | 0 .../{blocks => block}/needs_diamond_tool.json | 0 .../{blocks => block}/needs_stone_tool.json | 0 .../recipes/invisible_mossy_plate.json | 17 ------- .../recipes/invisible_obsidian_plate.json | 17 ------- .../playerplates/recipes/mossy_plate.json | 18 ------- .../playerplates/recipes/obsidian_plate.json | 16 ------- fabric/build.gradle | 16 +++++++ .../main/java/dev/wuffs/fabric/DataGens.java | 13 +++++ .../dev/wuffs/fabric/RecipeGenerator.java | 47 +++++++++++++++++++ fabric/src/main/resources/fabric.mod.json | 3 ++ gradle.properties | 8 ++-- 24 files changed, 298 insertions(+), 73 deletions(-) create mode 100644 common/src/generated/resources/.cache/6a0f5e15c385463c018bca1039790989fecb37f3 create mode 100644 common/src/generated/resources/data/playerplates/advancement/recipes/redstone/invisible_mossy_plate.json create mode 100644 common/src/generated/resources/data/playerplates/advancement/recipes/redstone/invisible_obsidian_plate.json create mode 100644 common/src/generated/resources/data/playerplates/advancement/recipes/redstone/mossy_plate.json create mode 100644 common/src/generated/resources/data/playerplates/advancement/recipes/redstone/obsidian_plate.json create mode 100644 common/src/generated/resources/data/playerplates/recipe/invisible_mossy_plate.json create mode 100644 common/src/generated/resources/data/playerplates/recipe/invisible_obsidian_plate.json create mode 100644 common/src/generated/resources/data/playerplates/recipe/mossy_plate.json create mode 100644 common/src/generated/resources/data/playerplates/recipe/obsidian_plate.json rename common/src/main/resources/data/minecraft/tags/{blocks => block}/mineable/pickaxe.json (100%) rename common/src/main/resources/data/minecraft/tags/{blocks => block}/needs_diamond_tool.json (100%) rename common/src/main/resources/data/minecraft/tags/{blocks => block}/needs_stone_tool.json (100%) delete mode 100644 common/src/main/resources/data/playerplates/recipes/invisible_mossy_plate.json delete mode 100644 common/src/main/resources/data/playerplates/recipes/invisible_obsidian_plate.json delete mode 100644 common/src/main/resources/data/playerplates/recipes/mossy_plate.json delete mode 100644 common/src/main/resources/data/playerplates/recipes/obsidian_plate.json create mode 100644 fabric/src/main/java/dev/wuffs/fabric/DataGens.java create mode 100644 fabric/src/main/java/dev/wuffs/fabric/RecipeGenerator.java diff --git a/.gitignore b/.gitignore index ccb0c56..e882933 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,5 @@ classes/ .metadata .vscode .settings -*.launch \ No newline at end of file +*.launch +common/src/main/resources/data-old/ diff --git a/CHANGELOG.md b/CHANGELOG.md index a305075..164b266 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to this project will be documented in this file. +## [21.0.3] + +- Fix crafting recipes + ## [21.0.2] - Bump fabric/neo versions diff --git a/common/build.gradle b/common/build.gradle index ac6f045..e1302a0 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -14,6 +14,8 @@ dependencies { modApi "dev.architectury:architectury:${rootProject.architectury_version}" } +sourceSets.main.resources.srcDir 'src/generated/resources' + publishing { publications { mavenCommon(MavenPublication) { diff --git a/common/src/generated/resources/.cache/6a0f5e15c385463c018bca1039790989fecb37f3 b/common/src/generated/resources/.cache/6a0f5e15c385463c018bca1039790989fecb37f3 new file mode 100644 index 0000000..d694739 --- /dev/null +++ b/common/src/generated/resources/.cache/6a0f5e15c385463c018bca1039790989fecb37f3 @@ -0,0 +1,9 @@ +// 1.21 2024-07-19T22:01:11.0724781 Player Plates/Recipes +baf165ff80186858a57e3b52b61d506ebd5ccc33 data\playerplates\recipe\mossy_plate.json +d0d85638d0c9b157d9ea306fe075ca70df31c657 data\playerplates\recipe\obsidian_plate.json +3b84335c98350eecee33f9a6ef8dabdbfb87bfd5 data\playerplates\advancement\recipes\redstone\invisible_obsidian_plate.json +b6af46165b7a0b913b33a650dceaabcefa5aedcf data\playerplates\recipe\invisible_mossy_plate.json +9f484b9a5716e4ab027862b21a801f2f3ef2bd6c data\playerplates\recipe\invisible_obsidian_plate.json +9b61191d38b0b17e674d6e4525d016454bb4308c data\playerplates\advancement\recipes\redstone\invisible_mossy_plate.json +d1a5b52d2b7430d4d672267433c2ffc9a97689b1 data\playerplates\advancement\recipes\redstone\obsidian_plate.json +f420201bf436da372edaec15a9f10acdd7af72d8 data\playerplates\advancement\recipes\redstone\mossy_plate.json diff --git a/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/invisible_mossy_plate.json b/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/invisible_mossy_plate.json new file mode 100644 index 0000000..e43ad79 --- /dev/null +++ b/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/invisible_mossy_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossycobble": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "playerplates:invisible_mossy_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossycobble" + ] + ], + "rewards": { + "recipes": [ + "playerplates:invisible_mossy_plate" + ] + } +} \ No newline at end of file diff --git a/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/invisible_obsidian_plate.json b/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/invisible_obsidian_plate.json new file mode 100644 index 0000000..d45aeae --- /dev/null +++ b/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/invisible_obsidian_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_obsidian": { + "conditions": { + "items": [ + { + "items": "minecraft:obsidian" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "playerplates:invisible_obsidian_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_obsidian" + ] + ], + "rewards": { + "recipes": [ + "playerplates:invisible_obsidian_plate" + ] + } +} \ No newline at end of file diff --git a/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/mossy_plate.json b/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/mossy_plate.json new file mode 100644 index 0000000..c0528fc --- /dev/null +++ b/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/mossy_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossycobble": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "playerplates:mossy_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossycobble" + ] + ], + "rewards": { + "recipes": [ + "playerplates:mossy_plate" + ] + } +} \ No newline at end of file diff --git a/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/obsidian_plate.json b/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/obsidian_plate.json new file mode 100644 index 0000000..e3e0219 --- /dev/null +++ b/common/src/generated/resources/data/playerplates/advancement/recipes/redstone/obsidian_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_obsidian": { + "conditions": { + "items": [ + { + "items": "minecraft:obsidian" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "playerplates:obsidian_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_obsidian" + ] + ], + "rewards": { + "recipes": [ + "playerplates:obsidian_plate" + ] + } +} \ No newline at end of file diff --git a/common/src/generated/resources/data/playerplates/recipe/invisible_mossy_plate.json b/common/src/generated/resources/data/playerplates/recipe/invisible_mossy_plate.json new file mode 100644 index 0000000..8ebe37d --- /dev/null +++ b/common/src/generated/resources/data/playerplates/recipe/invisible_mossy_plate.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "G": { + "item": "minecraft:glass_pane" + }, + "M": { + "item": "minecraft:mossy_cobblestone" + } + }, + "pattern": [ + "GM" + ], + "result": { + "count": 1, + "id": "playerplates:invisible_mossy_plate" + } +} \ No newline at end of file diff --git a/common/src/generated/resources/data/playerplates/recipe/invisible_obsidian_plate.json b/common/src/generated/resources/data/playerplates/recipe/invisible_obsidian_plate.json new file mode 100644 index 0000000..e51a600 --- /dev/null +++ b/common/src/generated/resources/data/playerplates/recipe/invisible_obsidian_plate.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "G": { + "item": "minecraft:glass_pane" + }, + "O": { + "item": "minecraft:obsidian" + } + }, + "pattern": [ + "GO" + ], + "result": { + "count": 1, + "id": "playerplates:invisible_obsidian_plate" + } +} \ No newline at end of file diff --git a/common/src/generated/resources/data/playerplates/recipe/mossy_plate.json b/common/src/generated/resources/data/playerplates/recipe/mossy_plate.json new file mode 100644 index 0000000..b30ca5b --- /dev/null +++ b/common/src/generated/resources/data/playerplates/recipe/mossy_plate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "M": { + "item": "minecraft:mossy_cobblestone" + } + }, + "pattern": [ + "MM" + ], + "result": { + "count": 1, + "id": "playerplates:mossy_plate" + } +} \ No newline at end of file diff --git a/common/src/generated/resources/data/playerplates/recipe/obsidian_plate.json b/common/src/generated/resources/data/playerplates/recipe/obsidian_plate.json new file mode 100644 index 0000000..3fd2407 --- /dev/null +++ b/common/src/generated/resources/data/playerplates/recipe/obsidian_plate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "O": { + "item": "minecraft:obsidian" + } + }, + "pattern": [ + "OO" + ], + "result": { + "count": 1, + "id": "playerplates:obsidian_plate" + } +} \ No newline at end of file diff --git a/common/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json similarity index 100% rename from common/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json rename to common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json diff --git a/common/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json b/common/src/main/resources/data/minecraft/tags/block/needs_diamond_tool.json similarity index 100% rename from common/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json rename to common/src/main/resources/data/minecraft/tags/block/needs_diamond_tool.json diff --git a/common/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json similarity index 100% rename from common/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json rename to common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json diff --git a/common/src/main/resources/data/playerplates/recipes/invisible_mossy_plate.json b/common/src/main/resources/data/playerplates/recipes/invisible_mossy_plate.json deleted file mode 100644 index ec42bc4..0000000 --- a/common/src/main/resources/data/playerplates/recipes/invisible_mossy_plate.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "crafting_shaped", - "pattern": [ - "GC" - ], - "key": { - "G": { - "item": "minecraft:glass_pane" - }, - "C": { - "item": "playerplates:mossy_plate" - } - }, - "result": { - "item": "playerplates:invisible_mossy_plate" - } -} \ No newline at end of file diff --git a/common/src/main/resources/data/playerplates/recipes/invisible_obsidian_plate.json b/common/src/main/resources/data/playerplates/recipes/invisible_obsidian_plate.json deleted file mode 100644 index 6019c97..0000000 --- a/common/src/main/resources/data/playerplates/recipes/invisible_obsidian_plate.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "crafting_shaped", - "pattern": [ - "GO" - ], - "key": { - "G": { - "item": "minecraft:glass_pane" - }, - "O": { - "item": "playerplates:obsidian_plate" - } - }, - "result": { - "item": "playerplates:invisible_obsidian_plate" - } -} \ No newline at end of file diff --git a/common/src/main/resources/data/playerplates/recipes/mossy_plate.json b/common/src/main/resources/data/playerplates/recipes/mossy_plate.json deleted file mode 100644 index cadc978..0000000 --- a/common/src/main/resources/data/playerplates/recipes/mossy_plate.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "crafting_shaped", - "pattern": [ - "CC" - ], - "key": { - "C": [ - { - "item": "minecraft:mossy_cobblestone", - "data": 0 - } - ] - }, - "result": { - "item": "playerplates:mossy_plate", - "count": 1 - } -} \ No newline at end of file diff --git a/common/src/main/resources/data/playerplates/recipes/obsidian_plate.json b/common/src/main/resources/data/playerplates/recipes/obsidian_plate.json deleted file mode 100644 index 5c66cd7..0000000 --- a/common/src/main/resources/data/playerplates/recipes/obsidian_plate.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "crafting_shaped", - "pattern": [ - "OO" - ], - "key": { - "O": { - "item": "minecraft:obsidian", - "data": 0 - } - }, - "result": { - "item": "playerplates:obsidian_plate", - "count": 1 - } -} \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index aff9991..94b1c41 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -9,6 +9,22 @@ architectury { loom { accessWidenerPath = project(":common").loom.accessWidenerPath + + runs{ + data { + inherit client + setConfigName("Fabric Data") + ideConfigGenerated(true) + + vmArg("-Dfabric-api.datagen") + vmArg("-Dfabric-api.datagen.output-dir=${project(":common").file("src/generated/resources")}") + vmArg("-Dfabric-api.datagen.modid=playerplates") + + runDir "build/datagen" + + } + } + } configurations { diff --git a/fabric/src/main/java/dev/wuffs/fabric/DataGens.java b/fabric/src/main/java/dev/wuffs/fabric/DataGens.java new file mode 100644 index 0000000..510b2de --- /dev/null +++ b/fabric/src/main/java/dev/wuffs/fabric/DataGens.java @@ -0,0 +1,13 @@ +package dev.wuffs.fabric; + +import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; + +public class DataGens implements DataGeneratorEntrypoint { + @Override + public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { + FabricDataGenerator.Pack pack = fabricDataGenerator.createPack(); + pack.addProvider(RecipeGenerator::new); + + } +} \ No newline at end of file diff --git a/fabric/src/main/java/dev/wuffs/fabric/RecipeGenerator.java b/fabric/src/main/java/dev/wuffs/fabric/RecipeGenerator.java new file mode 100644 index 0000000..2b5314e --- /dev/null +++ b/fabric/src/main/java/dev/wuffs/fabric/RecipeGenerator.java @@ -0,0 +1,47 @@ +package dev.wuffs.fabric; + +import dev.wuffs.playerplates.PPRegistry; +import dev.wuffs.playerplates.PlayerPlates; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.recipes.*; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Items; + +import java.util.concurrent.CompletableFuture; + +public class RecipeGenerator extends FabricRecipeProvider { + public RecipeGenerator(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + public void buildRecipes(RecipeOutput exporter) { + ShapedRecipeBuilder.shaped(RecipeCategory.REDSTONE, PPRegistry.OBSIDIAN_PLATE_ITEM.get()) + .unlockedBy("has_obsidian", has(Items.OBSIDIAN)) + .pattern("OO") + .define('O', Items.OBSIDIAN) + .save(exporter, ResourceLocation.fromNamespaceAndPath(PlayerPlates.MOD_ID, "obsidian_plate")); + + ShapedRecipeBuilder.shaped(RecipeCategory.REDSTONE, PPRegistry.INVISIBLE_OBSIDIAN_PLATE_ITEM.get()) + .unlockedBy("has_obsidian", has(Items.OBSIDIAN)) + .pattern("GO") + .define('O', Items.OBSIDIAN) + .define('G', Items.GLASS_PANE) + .save(exporter, ResourceLocation.fromNamespaceAndPath(PlayerPlates.MOD_ID, "invisible_obsidian_plate")); + + ShapedRecipeBuilder.shaped(RecipeCategory.REDSTONE, PPRegistry.MOSSY_PLATE_ITEM.get()) + .unlockedBy("has_mossycobble", has(Items.MOSSY_COBBLESTONE)) + .pattern("MM") + .define('M', Items.MOSSY_COBBLESTONE) + .save(exporter, ResourceLocation.fromNamespaceAndPath(PlayerPlates.MOD_ID, "mossy_plate")); + + ShapedRecipeBuilder.shaped(RecipeCategory.REDSTONE, PPRegistry.INVISIBLE_MOSSY_PLATE_ITEM.get()) + .unlockedBy("has_mossycobble", has(Items.MOSSY_COBBLESTONE)) + .pattern("GM") + .define('M', Items.MOSSY_COBBLESTONE) + .define('G', Items.GLASS_PANE) + .save(exporter, ResourceLocation.fromNamespaceAndPath(PlayerPlates.MOD_ID, "invisible_mossy_plate")); + } +} \ No newline at end of file diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index fb4d7eb..0a37595 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -17,6 +17,9 @@ "entrypoints": { "main": [ "dev.wuffs.playerplates.PlayerPlates::init" + ], + "fabric-datagen": [ + "dev.wuffs.fabric.DataGens" ] }, "depends": { diff --git a/gradle.properties b/gradle.properties index 29d1844..65354f0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # Project -mod_version=21.0.2 +mod_version=21.0.3 maven_group=dev.wuffs.playerplates enabled_platforms=fabric,neoforge archives_base_name=playerplates @@ -10,11 +10,11 @@ architectury_version=13.0.4 # Fabric fabric_loader_version=0.16.0 -fabric_api_version=0.100.6+1.21 +fabric_api_version=0.100.7+1.21 # Neo -neo_version=21.0.87-beta -neo_gradle=[7.0.154,) +neo_version=21.0.113-beta +neo_gradle=[7.0.155,) # Publishing curseforge_id=311645