aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2025-10-13 16:25:56 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2025-10-13 16:25:56 +0200
commit6df240fe9902cd2777cb9447ed51c3dcb4246223 (patch)
treea4f9a02403a4566050d87285f7185634e54c7767 /src
parent71629b57438294e7c6f14ef929c56f5fc1537e80 (diff)
fix(hearts): broken data generation
Diffstat (limited to 'src')
-rw-r--r--src/main/generated/data/lifesteal/advancement/recipes/combat/nether_star.json32
-rw-r--r--src/main/generated/data/lifesteal/recipe/nether_star.json18
-rw-r--r--src/main/generated/data/lifesteal/tags/item/heart_parts.json7
-rw-r--r--src/main/java/world/anhgelus/lifesteal/datagen/CraftProvider.java17
-rw-r--r--src/main/java/world/anhgelus/lifesteal/datagen/DataGenerator.java1
-rw-r--r--src/main/java/world/anhgelus/lifesteal/datagen/TagProvider.java29
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);
+ }
+}