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