Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
1package net.lerariemann.infinity.data.recipe;
2
3
4import net.lerariemann.infinity.item.function.F4RechargingRecipe;
5import net.minecraft.core.registries.Registries;
6import net.minecraft.data.recipes.RecipeBuilder;
7//? >1.21 {
8import net.minecraft.data.recipes.RecipeOutput;
9import net.minecraft.advancements.AdvancementHolder;
10import net.minecraft.advancements.Criterion;
11import net.minecraft.world.item.crafting.CraftingBookCategory;
12import net.minecraft.resources.ResourceKey;
13import net.lerariemann.infinity.item.function.ChromaCarpetRecipe;
14//?} else {
15/*import net.lerariemann.infinity.util.InfinityMethods;
16import net.minecraft.data.recipes.FinishedRecipe;
17import net.lerariemann.infinity.registry.core.ModItemFunctions;
18import com.google.gson.JsonObject;
19import net.minecraft.advancements.CriterionTriggerInstance;
20*///?}
21import net.minecraft.resources.ResourceLocation;
22import net.minecraft.world.item.Item;
23import net.minecraft.world.item.crafting.Recipe;
24import net.minecraft.world.item.crafting.RecipeSerializer;
25import org.jspecify.annotations.Nullable;
26
27import java.util.function.Consumer;
28
29import static net.lerariemann.infinity.registry.core.ModItems.F4;
30
31public class F4RechargingRecipeBuilder implements RecipeBuilder {
32
33 F4RechargingRecipeBuilder() {}
34
35 @Override
36 public RecipeBuilder group(@Nullable String groupName) {
37 return null;
38 }
39
40 @Override
41 public Item getResult() {
42 return F4.get();
43 }
44
45 //? if >1.21.2 {
46 public void save(RecipeOutput recipeOutput, ResourceKey<Recipe<?>> id) {
47 F4RechargingRecipe recipe = new F4RechargingRecipe(CraftingBookCategory.MISC);
48 recipeOutput.accept(id, recipe, null);
49 }
50 //?} else if >1.21 {
51 /*public void save(RecipeOutput recipeOutput, ResourceLocation id) {
52 F4RechargingRecipe recipe = new F4RechargingRecipe(CraftingBookCategory.MISC);
53 recipeOutput.accept(id, recipe, null);
54 }
55 *///?}
56
57 //? >1.21 {
58
59 @Override
60 public RecipeBuilder unlockedBy(String name, Criterion<?> criterion) {
61 return null;
62 }
63 //?} else {
64 /*@Override
65 public RecipeBuilder unlockedBy(String criterionName, CriterionTriggerInstance criterionTrigger) {
66 return null;
67 }
68
69 @Override
70 public void save(Consumer<FinishedRecipe> finishedRecipeConsumer, ResourceLocation recipeId) {
71 finishedRecipeConsumer.accept(new CombiningRecipeResult());
72 }
73
74 private static class CombiningRecipeResult implements FinishedRecipe {
75 @Override
76 public void serializeRecipeData(JsonObject json) {
77 json.addProperty("category", "misc");
78 }
79
80 @Override
81 public ResourceLocation getId() {
82 return InfinityMethods.getId("f4_recharging");
83 }
84
85 @Override
86 public RecipeSerializer<?> getType() {
87 return ModItemFunctions.F4_RECHARGING.get();
88 }
89
90 @Override
91 public @Nullable JsonObject serializeAdvancement() {
92 return null;
93 }
94
95 @Override
96 public @Nullable ResourceLocation getAdvancementId() {
97 return null;
98 }
99 }
100 *///?}
101
102}