diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-13 16:25:56 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-13 16:25:56 +0200 |
| commit | 6df240fe9902cd2777cb9447ed51c3dcb4246223 (patch) | |
| tree | a4f9a02403a4566050d87285f7185634e54c7767 /src/main | |
| parent | 71629b57438294e7c6f14ef929c56f5fc1537e80 (diff) | |
fix(hearts): broken data generation
Diffstat (limited to 'src/main')
6 files changed, 93 insertions, 11 deletions
diff --git a/src/main/generated/data/lifesteal/advancement/recipes/combat/nether_star.json b/src/main/generated/data/lifesteal/advancement/recipes/combat/nether_star.json new file mode 100644 index 0000000..6ade866 --- /dev/null +++ b/src/main/generated/data/lifesteal/advancement/recipes/combat/nether_star.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_heart_parts": { + "conditions": { + "items": [ + { + "items": "#lifesteal:heart_parts" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "lifesteal:nether_star" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_heart_parts" + ] + ], + "rewards": { + "recipes": [ + "lifesteal:nether_star" + ] + } +}
\ No newline at end of file diff --git a/src/main/generated/data/lifesteal/recipe/nether_star.json b/src/main/generated/data/lifesteal/recipe/nether_star.json new file mode 100644 index 0000000..10a4114 --- /dev/null +++ b/src/main/generated/data/lifesteal/recipe/nether_star.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "n": "minecraft:netherite_ingot", + "r": "#lifesteal:heart_parts", + "s": "minecraft:nautilus_shell" + }, + "pattern": [ + "sns", + "nrn", + "sns" + ], + "result": { + "count": 1, + "id": "minecraft:nether_star" + } +}
\ No newline at end of file diff --git a/src/main/generated/data/lifesteal/tags/item/heart_parts.json b/src/main/generated/data/lifesteal/tags/item/heart_parts.json new file mode 100644 index 0000000..de522d9 --- /dev/null +++ b/src/main/generated/data/lifesteal/tags/item/heart_parts.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:ominous_trial_key", + "minecraft:dragon_head", + "minecraft:wither_skeleton_skull" + ] +}
\ No newline at end of file diff --git a/src/main/java/world/anhgelus/lifesteal/datagen/CraftProvider.java b/src/main/java/world/anhgelus/lifesteal/datagen/CraftProvider.java index 8211162..0238f12 100644 --- a/src/main/java/world/anhgelus/lifesteal/datagen/CraftProvider.java +++ b/src/main/java/world/anhgelus/lifesteal/datagen/CraftProvider.java @@ -4,7 +4,6 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; import net.minecraft.data.recipe.RecipeExporter; import net.minecraft.data.recipe.RecipeGenerator; -import net.minecraft.data.recipe.ShapedRecipeJsonBuilder; import net.minecraft.item.Items; import net.minecraft.recipe.book.RecipeCategory; import net.minecraft.registry.RegistryWrapper; @@ -19,21 +18,17 @@ public class CraftProvider extends FabricRecipeProvider { @Override protected RecipeGenerator getRecipeGenerator(RegistryWrapper.WrapperLookup registryLookup, RecipeExporter exporter) { return new RecipeGenerator(registryLookup, exporter) { - private ShapedRecipeJsonBuilder base() { - return createShaped(RecipeCategory.COMBAT, Items.NETHER_STAR) + @Override + public void generate() { + createShaped(RecipeCategory.COMBAT, Items.NETHER_STAR) .pattern("sns") .pattern("nrn") .pattern("sns") .input('s', Items.NAUTILUS_SHELL) .input('n', Items.NETHERITE_INGOT) - .criterion(hasItem(Items.NETHERITE_INGOT), conditionsFromItem(Items.NETHERITE_INGOT)); - } - - @Override - public void generate() { - base().input('r', Items.OMINOUS_TRIAL_KEY).offerTo(exporter); - base().input('r', Items.DRAGON_HEAD).offerTo(exporter); - base().input('r', Items.WITHER_SKELETON_SKULL).offerTo(exporter); + .input('r', TagProvider.HEART_PARTS) + .criterion("has_heart_parts", conditionsFromTag(TagProvider.HEART_PARTS)) + .offerTo(exporter); } }; } diff --git a/src/main/java/world/anhgelus/lifesteal/datagen/DataGenerator.java b/src/main/java/world/anhgelus/lifesteal/datagen/DataGenerator.java index 3c82011..d8f86ea 100644 --- a/src/main/java/world/anhgelus/lifesteal/datagen/DataGenerator.java +++ b/src/main/java/world/anhgelus/lifesteal/datagen/DataGenerator.java @@ -8,5 +8,6 @@ public class DataGenerator implements DataGeneratorEntrypoint { public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { final var pack = fabricDataGenerator.createPack(); pack.addProvider(CraftProvider::new); + pack.addProvider(TagProvider::new); } } diff --git a/src/main/java/world/anhgelus/lifesteal/datagen/TagProvider.java b/src/main/java/world/anhgelus/lifesteal/datagen/TagProvider.java new file mode 100644 index 0000000..131e97b --- /dev/null +++ b/src/main/java/world/anhgelus/lifesteal/datagen/TagProvider.java @@ -0,0 +1,29 @@ +package world.anhgelus.lifesteal.datagen; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.registry.tag.TagKey; +import net.minecraft.util.Identifier; +import world.anhgelus.lifesteal.LifeSteal; + +import java.util.concurrent.CompletableFuture; + +public class TagProvider extends FabricTagProvider.ItemTagProvider { + public static final TagKey<Item> HEART_PARTS = TagKey.of(RegistryKeys.ITEM, Identifier.of(LifeSteal.MOD_ID, "heart_parts")); + + public TagProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { + valueLookupBuilder(HEART_PARTS) + .add(Items.OMINOUS_TRIAL_KEY) + .add(Items.DRAGON_HEAD) + .add(Items.WITHER_SKELETON_SKULL); + } +} |
