aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-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
3 files changed, 36 insertions, 11 deletions
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);
+ }
+}