Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.

Initial data generation push

+7254 -671
+1 -1
CHANGELOG-LATEST.md
··· 1 - A crucial crash exclusive to Fabric 1.21.8 is fixed which was triggering a ConcurrentModificationException on every portal activation. 1 + - The mod now makes use of data generation, improving consistency between versions.
+14 -6
build.fabric.gradle.kts
··· 11 11 version = "${property("mod.version")}+${property("deps.minecraft")}" 12 12 if (property("mod.test_build") != "0") version = "$version-tb${property("mod.test_build")}" 13 13 14 + val majorVersion = if (stonecutter.eval(stonecutter.current.version, ">=1.21.2")) { 15 + 22 16 + } else if (stonecutter.eval(stonecutter.current.version, ">=1.21")) { 17 + 21 18 + } else { 19 + 20 20 + } 21 + 22 + 14 23 tasks.named<ProcessResources>("processResources") { 15 24 fun prop(name: String) = project.property(name) as String 16 25 ··· 211 220 } 212 221 213 222 214 - //fabricApi { 215 - // configureDataGeneration() { 216 - // outputDirectory = file("$rootDir/src/main/generated") 217 - // client = true 218 - // } 219 - //} 223 + fabricApi { 224 + configureDataGeneration { 225 + client = true 226 + } 227 + } 220 228 221 229 tasks.named("processResources") { 222 230 dependsOn(":${stonecutter.current.project}:stonecutterGenerate")
+4
build.forge.gradle.kts
··· 216 216 } 217 217 } 218 218 219 + tasks.register<Sync>("syncDatagen") { 220 + from(project(":${minecraft}-fabric").tasks.named("runDatagen")) 221 + into(file("src/main/generated/")) 222 + } 219 223 220 224 tasks { 221 225 processResources {
+10
build.neoforge.gradle.kts
··· 127 127 sourceSet(sourceSets["main"]) 128 128 } 129 129 } 130 + sourceSets["main"].resources.srcDir("src/main/generated") 130 131 } 131 132 132 133 dependencies { ··· 159 160 160 161 } 161 162 163 + tasks.named("processResources") { 164 + dependsOn(":${stonecutter.current.project}:stonecutterGenerate") 165 + } 166 + 167 + tasks.register<Sync>("syncDatagen") { 168 + from(project(":${minecraft}-fabric").tasks.named("runDatagen")) 169 + exclude("**/.cache") 170 + into(file("src/main/generated/")) 171 + } 162 172 163 173 tasks { 164 174 processResources {
+4 -4
src/main/java/net/lerariemann/infinity/block/custom/AntBlock.java
··· 25 25 import com.mojang.serialization.MapCodec; 26 26 //?} 27 27 //? if neoforge { 28 - import javax.annotation.ParametersAreNonnullByDefault; 29 - //?} 28 + /*import javax.annotation.ParametersAreNonnullByDefault; 29 + *///?} 30 30 import java.util.Objects; 31 31 import java.util.logging.Handler; 32 32 33 33 @MethodsReturnNonnullByDefault 34 34 //? if neoforge { 35 - @ParametersAreNonnullByDefault 36 - //?} 35 + /*@ParametersAreNonnullByDefault 36 + *///?} 37 37 public class AntBlock extends HorizontalDirectionalBlock { 38 38 //? if >1.21 { 39 39 public static final MapCodec<AntBlock> CODEC = simpleCodec(AntBlock::new);
+4 -4
src/main/java/net/lerariemann/infinity/block/custom/BiomeBottleBlock.java
··· 44 44 import net.minecraft.world.phys.shapes.VoxelShape; 45 45 import org.jetbrains.annotations.Nullable; 46 46 //? if neoforge { 47 - import javax.annotation.ParametersAreNonnullByDefault; 48 - //?} 47 + /*import javax.annotation.ParametersAreNonnullByDefault; 48 + *///?} 49 49 50 50 import java.util.*; 51 51 import java.util.stream.Collectors; 52 52 53 53 @MethodsReturnNonnullByDefault 54 54 //? if neoforge { 55 - @ParametersAreNonnullByDefault 56 - //?} 55 + /*@ParametersAreNonnullByDefault 56 + *///?} 57 57 public class BiomeBottleBlock extends BaseEntityBlock { 58 58 //? if >1.21 { 59 59 public static final MapCodec<BiomeBottleBlock> CODEC = simpleCodec(BiomeBottleBlock::new);
+2 -2
src/main/java/net/lerariemann/infinity/block/custom/RailHelper.java
··· 36 36 @Override 37 37 public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { 38 38 //? if <1.21.2 || fabric { 39 - /*if (ModCompat.CREATE) { 39 + if (ModCompat.CREATE) { 40 40 CreateCompat.reattachRails(world, pos, getBlockEntity(world, pos)); 41 41 }else 42 - *///?} 42 + //?} 43 43 world.setBlockAndUpdate(pos, Blocks.AIR.defaultBlockState()); 44 44 } 45 45
+4 -4
src/main/java/net/lerariemann/infinity/block/entity/BiomeBottleBlockEntity.java
··· 33 33 import net.minecraft.core.component.DataComponentMap; 34 34 //?} 35 35 //? if neoforge { 36 - import javax.annotation.ParametersAreNonnullByDefault; 37 - //?} 36 + /*import javax.annotation.ParametersAreNonnullByDefault; 37 + *///?} 38 38 39 39 @MethodsReturnNonnullByDefault 40 40 //? if neoforge { 41 - @ParametersAreNonnullByDefault 42 - //?} 41 + /*@ParametersAreNonnullByDefault 42 + *///?} 43 43 public class BiomeBottleBlockEntity extends TintableBlockEntity { 44 44 private final ContainerData propertyDelegate; 45 45 private ResourceLocation biome;
+2 -2
src/main/java/net/lerariemann/infinity/block/entity/InfinityPortalBlockEntity.java
··· 26 26 import org.jetbrains.annotations.Nullable; 27 27 28 28 //? if neoforge 29 - import javax.annotation.ParametersAreNonnullByDefault; 29 + /*import javax.annotation.ParametersAreNonnullByDefault;*/ 30 30 import java.util.Random; 31 31 32 32 @MethodsReturnNonnullByDefault 33 33 //? if neoforge 34 - @ParametersAreNonnullByDefault 34 + /*@ParametersAreNonnullByDefault*/ 35 35 public class InfinityPortalBlockEntity extends TintableBlockEntity { 36 36 private final ContainerData propertyDelegate; 37 37 private ResourceLocation dimension;
+9 -9
src/main/java/net/lerariemann/infinity/compat/CreateCompat.java
··· 7 7 import com.simibubi.create.content.trains.track.TrackShape; 8 8 import net.createmod.catnip.math.BlockFace; 9 9 *///?} else if fabric { 10 - /*import com.zurrtum.create.api.contraption.train.PortalTrackProvider; 10 + import com.zurrtum.create.api.contraption.train.PortalTrackProvider; 11 11 import com.zurrtum.create.catnip.math.BlockFace; 12 12 import com.zurrtum.create.content.trains.track.AllPortalTracks; 13 13 import com.zurrtum.create.content.trains.track.TrackBlock; 14 14 import com.zurrtum.create.content.trains.track.TrackShape; 15 - *///?} 15 + //?} 16 16 //? if <1.21.2 || fabric { 17 - /*import net.lerariemann.infinity.block.custom.RailHelper; 17 + import net.lerariemann.infinity.block.custom.RailHelper; 18 18 import net.lerariemann.infinity.block.entity.InfinityPortalBlockEntity; 19 19 import net.lerariemann.infinity.registry.core.ModBlocks; 20 20 import net.lerariemann.infinity.util.InfinityMethods; ··· 32 32 33 33 import java.util.Optional; 34 34 import java.util.Set; 35 - *///?} 35 + //?} 36 36 37 37 public class CreateCompat { 38 38 //? if <1.21.2 || fabric { 39 - /*private static PortalTrackProvider.Exit infinityPortalProvider(ServerLevel worldFrom, BlockFace blockFace) { 39 + private static PortalTrackProvider.Exit infinityPortalProvider(ServerLevel worldFrom, BlockFace blockFace) { 40 40 MinecraftServer server = worldFrom.getServer(); 41 41 //? if <1.21 42 - /^if (!server.isNetherEnabled()) return null;^/ 42 + /*if (!server.isNetherEnabled()) return null;*/ 43 43 //? if >1.21.9 { 44 - /^server.getGameRules().getRule(GameRules.RULE_ALLOW_NETHER); 45 - ^///?} 44 + /*server.getGameRules().getRule(GameRules.RULE_ALLOW_NETHER); 45 + *///?} 46 46 BlockPos posFrom = blockFace.getConnectedPos(); 47 47 if (worldFrom.getBlockEntity(posFrom) instanceof InfinityPortalBlockEntity ipbe 48 48 && ipbe.isConnectedBothSides()) { //we only allow trains through if portals are in sync ··· 141 141 else bs = b.get().defaultBlockState().setValue(TrackBlock.SHAPE, e.shape.equals("zo") ? TrackShape.ZO : TrackShape.XO); 142 142 world.setBlockAndUpdate(pos, bs); 143 143 } 144 - *///?} 144 + //?} 145 145 }
+6 -6
src/main/java/net/lerariemann/infinity/compat/PonderCompat.java
··· 3 3 //? if <1.21.2 4 4 /*import net.createmod.ponder.api.level.PonderLevel;*/ 5 5 //? if >1.21.4 && fabric { 6 - /*import com.zurrtum.create.client.ponder.api.level.PonderLevel; 7 - *///?} 6 + import com.zurrtum.create.client.ponder.api.level.PonderLevel; 7 + //?} 8 8 import net.minecraft.world.level.Level; 9 9 10 10 public class PonderCompat { 11 11 public static boolean isPonderLevel(Level world) { 12 12 //? if <1.21.2 || fabric { 13 - /*return world instanceof PonderLevel; 14 - *///?} else { 15 - return false; 16 - //?} 13 + return world instanceof PonderLevel; 14 + //?} else { 15 + /*return false; 16 + *///?} 17 17 } 18 18 }
+128
src/main/java/net/lerariemann/infinity/data/InfinityAdvancementProvider.java
··· 1 + package net.lerariemann.infinity.data; 2 + 3 + //? fabric { 4 + 5 + import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; 6 + import net.fabricmc.fabric.api.datagen.v1.provider.FabricAdvancementProvider; 7 + import net.lerariemann.infinity.InfinityMod; 8 + import net.lerariemann.infinity.registry.core.ModItems; 9 + import net.lerariemann.infinity.registry.var.ModCriteria; 10 + import net.lerariemann.infinity.util.VersionMethods; 11 + import net.minecraft.advancements.Advancement; 12 + //? >1.21 { 13 + import net.minecraft.advancements.AdvancementHolder; 14 + import static net.minecraft.advancements.AdvancementRequirements.*; 15 + import static net.minecraft.advancements.AdvancementRequirements.Strategy.OR; 16 + import static net.minecraft.advancements.AdvancementType.TASK; 17 + //?} else { 18 + /*import static net.minecraft.advancements.FrameType.TASK; 19 + import static net.minecraft.advancements.RequirementsStrategy.OR; 20 + *///?} 21 + import net.minecraft.advancements.Criterion; 22 + import net.minecraft.core.HolderLookup; 23 + import net.minecraft.network.chat.Component; 24 + import net.minecraft.world.item.Items; 25 + 26 + import java.util.Optional; 27 + import java.util.concurrent.CompletableFuture; 28 + import java.util.function.Consumer; 29 + 30 + 31 + 32 + public class InfinityAdvancementProvider extends FabricAdvancementProvider { 33 + 34 + public InfinityAdvancementProvider(FabricDataOutput dataOutput, CompletableFuture<HolderLookup.Provider> registryLookup) { 35 + super(dataOutput 36 + //? >1.21 37 + , registryLookup 38 + ); 39 + } 40 + 41 + @Override 42 + public void generateAdvancement( 43 + //? if >1.21 { 44 + HolderLookup.Provider registryLookup, Consumer<AdvancementHolder> consumer 45 + //?} else { 46 + /*Consumer<Advancement> consumer 47 + *///?} 48 + ) { 49 + var acidTest = Advancement.Builder.advancement() 50 + //.parent(iridescence) 51 + .display( 52 + ModItems.TRANSFINITE_KEY.get(), // The display icon 53 + Component.translatable("advancements.infinity.acid_test.title"), // The title 54 + Component.literal("advancements.infinity.acid_test.description"), // The description 55 + null, // Background image for the tab in the advancements page, if this is a root advancement (has no parent) 56 + TASK, // TASK, CHALLENGE, or GOAL 57 + true, // Show the toast when completing it 58 + true, // Announce it to chat 59 + false // Hide it in the advancement tab until it's achieved 60 + ) 61 + .addCriterion("creeper", mobChangeCriterion("minecraft:creeper")) 62 + .addCriterion("skeleton", mobChangeCriterion("minecraft:skeleton")) 63 + .addCriterion("slime", mobChangeCriterion("minecraft:slime")) 64 + .addCriterion("pawn", mobChangeCriterion("infinity:chaos_pawn")) 65 + .requirements(OR) 66 + // Give the advancement an id 67 + .save(consumer, InfinityMod.MOD_ID + ":acid_test"); 68 + // FIXME - generating advancements with parents appears to be broken on 1.20? 69 + //? if >1.21 { 70 + var multiverseRoot = Advancement.Builder.advancement() 71 + .parent(VersionMethods.id("minecraft", "story/enter_the_nether")) 72 + .display( 73 + Items.WRITABLE_BOOK, // The display icon 74 + Component.translatable("advancements.infinity.multiverse_start.title"), // The title 75 + Component.literal("advancements.infinity.multiverse_start.description"), // The description 76 + null, // Background image for the tab in the advancements page, if this is a root advancement (has no parent) 77 + TASK, // TASK, CHALLENGE, or GOAL 78 + true, // Show the toast when completing it 79 + true, // Announce it to chat 80 + false // Hide it in the advancement tab until it's achieved 81 + ) 82 + .addCriterion("infinity_dims_open", dimsOpenCriterion(1)) 83 + // Give the advancement an id 84 + .save(consumer, InfinityMod.MOD_ID + ":multiverse_root"); 85 + 86 + var allTime = Advancement.Builder.advancement() 87 + .parent(multiverseRoot) 88 + .display( 89 + Items.CLOCK, // The display icon 90 + Component.translatable("advancements.infinity.all_time.title"), // The title 91 + Component.literal("advancements.infinity.all_time.description"), // The description 92 + null, // Background image for the tab in the advancements page, if this is a root advancement (has no parent) 93 + TASK, // TASK, CHALLENGE, or GOAL 94 + true, // Show the toast when completing it 95 + true, // Announce it to chat 96 + false // Hide it in the advancement tab until it's achieved 97 + ) 98 + .addCriterion("infinity_dims_closed", dimsClosedCriterion(1)) 99 + // Give the advancement an id 100 + .save(consumer, InfinityMod.MOD_ID + ":all_time"); 101 + //?} 102 + } 103 + 104 + public Criterion mobChangeCriterion(String data) { 105 + //? if >1.21 { 106 + return ModCriteria.CONVERT_MOB.get().createCriterion(new ModCriteria.DataConditions(Optional.empty(), data)); 107 + //?} else { 108 + /*return new Criterion(ModCriteria.DataConditions.create(data, ModCriteria.CONVERT_MOB.get().getId())); 109 + *///?} 110 + } 111 + 112 + public Criterion dimsOpenCriterion(int data) { 113 + //? if >1.21 { 114 + return ModCriteria.DIMS_OPENED.get().createCriterion(new ModCriteria.ScoredConditions(Optional.empty(), data)); 115 + //?} else { 116 + /*return new Criterion(ModCriteria.ScoredConditions.create(data, ModCriteria.DIMS_OPENED.get().getId())); 117 + *///?} 118 + } 119 + 120 + public Criterion dimsClosedCriterion(int data) { 121 + //? if >1.21 { 122 + return ModCriteria.DIMS_CLOSED.get().createCriterion(new ModCriteria.ScoredConditions(Optional.empty(), data)); 123 + //?} else { 124 + /*return new Criterion(ModCriteria.ScoredConditions.create(data, ModCriteria.DIMS_CLOSED.get().getId())); 125 + *///?} 126 + } 127 + } 128 + //?}
+31
src/main/java/net/lerariemann/infinity/data/InfinityDataGenerator.java
··· 1 + package net.lerariemann.infinity.data; 2 + 3 + //? fabric { 4 + 5 + import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; 6 + import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; 7 + import net.lerariemann.infinity.data.loot.InfinityBlockLootTableProvider; 8 + import net.lerariemann.infinity.data.recipe.InfinityRecipeProvider; 9 + import net.lerariemann.infinity.data.tags.InfinityBlockTagProvider; 10 + import net.lerariemann.infinity.data.tags.InfinityEntityTagProvider; 11 + import net.lerariemann.infinity.data.tags.InfinityFluidTagProvider; 12 + import net.lerariemann.infinity.data.tags.InfinityItemTagProvider; 13 + 14 + public class InfinityDataGenerator implements DataGeneratorEntrypoint { 15 + @Override 16 + public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { 17 + FabricDataGenerator.Pack pack = fabricDataGenerator.createPack(); 18 + //tags 19 + pack.addProvider(InfinityBlockTagProvider::new); 20 + pack.addProvider(InfinityItemTagProvider::new); 21 + pack.addProvider(InfinityFluidTagProvider::new); 22 + pack.addProvider(InfinityEntityTagProvider::new); 23 + //loot tables 24 + pack.addProvider(InfinityBlockLootTableProvider::new); 25 + // advancements - buggy on 1.20 and really don't change enough to matter 26 + // pack.addProvider(InfinityAdvancementProvider::new); 27 + // recipes 28 + pack.addProvider(InfinityRecipeProvider::new); 29 + } 30 + } 31 + //?}
+41
src/main/java/net/lerariemann/infinity/data/loot/InfinityBlockLootTableProvider.java
··· 1 + package net.lerariemann.infinity.data.loot; 2 + 3 + //? fabric { 4 + 5 + import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; 6 + import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider; 7 + import net.lerariemann.infinity.registry.core.ModBlocks; 8 + import net.minecraft.core.HolderLookup; 9 + import net.minecraft.world.item.Items; 10 + 11 + import java.util.concurrent.CompletableFuture; 12 + 13 + public class InfinityBlockLootTableProvider extends FabricBlockLootTableProvider { 14 + 15 + public InfinityBlockLootTableProvider(FabricDataOutput dataOutput, CompletableFuture<HolderLookup.Provider> registryLookup) { 16 + super(dataOutput 17 + //? if >1.21 18 + , registryLookup 19 + ); 20 + } 21 + 22 + @Override 23 + public void generate() { 24 + //todo altar 25 + dropSelf(ModBlocks.ANT.get()); 26 + //todo biome bottle 27 + dropSelf(ModBlocks.BOOK_BOX.get()); 28 + //todo chromatic carpet 29 + //todo chromatic wool 30 + dropSelf(ModBlocks.COSMIC_ALTAR.get()); 31 + dropSelf(ModBlocks.CURSOR.get()); 32 + dropSelf(ModBlocks.IRIDESCENT_CARPET.get()); 33 + dropSelf(ModBlocks.IRIDESCENT_WOOL.get()); 34 + dropOther(ModBlocks.IRIDESCENT_KELP.get(), Items.KELP); 35 + dropOther(ModBlocks.IRIDESCENT_KELP_PLANT.get(), Items.KELP); 36 + createSlabItemTable(ModBlocks.NETHERITE_SLAB.get()); 37 + dropSelf(ModBlocks.NETHERITE_STAIRS.get()); 38 + dropSelf(ModBlocks.NOTES_BLOCK.get()); 39 + } 40 + } 41 + //?}
+117
src/main/java/net/lerariemann/infinity/data/recipe/ChromaticColoringRecipeBuilder.java
··· 1 + package net.lerariemann.infinity.data.recipe; 2 + 3 + 4 + import net.lerariemann.infinity.item.function.ChromaticColoringRecipe; 5 + import net.lerariemann.infinity.registry.core.ModItemFunctions; 6 + import net.lerariemann.infinity.util.InfinityMethods; 7 + import net.minecraft.core.registries.BuiltInRegistries; 8 + import net.minecraft.core.registries.Registries; 9 + import net.minecraft.data.recipes.RecipeBuilder; 10 + //? >1.21 { 11 + import net.minecraft.data.recipes.RecipeOutput; 12 + import net.minecraft.advancements.AdvancementHolder; 13 + import net.minecraft.advancements.Criterion; 14 + //?} else { 15 + /*import net.minecraft.data.recipes.FinishedRecipe; 16 + import net.lerariemann.infinity.registry.core.ModItemFunctions; 17 + import com.google.gson.JsonObject; 18 + import net.minecraft.advancements.CriterionTriggerInstance; 19 + *///?} 20 + import net.minecraft.resources.ResourceKey; 21 + import net.minecraft.resources.ResourceLocation; 22 + import net.minecraft.world.item.Item; 23 + import net.minecraft.world.item.crafting.Ingredient; 24 + import net.minecraft.world.item.crafting.Recipe; 25 + import net.minecraft.world.item.crafting.RecipeSerializer; 26 + import net.minecraft.world.level.ItemLike; 27 + import org.jetbrains.annotations.Nullable; 28 + 29 + import java.util.Locale; 30 + import java.util.function.Consumer; 31 + 32 + public class ChromaticColoringRecipeBuilder implements RecipeBuilder { 33 + private final Ingredient input; 34 + private final Item output; 35 + 36 + ChromaticColoringRecipeBuilder(Ingredient input, ItemLike output) { 37 + this.input = input; 38 + this.output = output.asItem(); 39 + 40 + } 41 + 42 + @Override 43 + public RecipeBuilder group(@Nullable String groupName) { 44 + return null; 45 + } 46 + 47 + 48 + 49 + @Override 50 + public Item getResult() { 51 + return this.output; 52 + } 53 + 54 + //? if >1.21.2 { 55 + public void save(RecipeOutput recipeOutput, ResourceKey<Recipe<?>> id) { 56 + ChromaticColoringRecipe recipe = new ChromaticColoringRecipe(input, output.getDefaultInstance()); 57 + recipeOutput.accept(id, recipe, null); 58 + } 59 + //?} 60 + 61 + //? >1.21 { 62 + public void save(RecipeOutput recipeOutput, ResourceLocation id) { 63 + //? if <1.21.2 { 64 + /*ChromaticColoringRecipe recipe = new ChromaticColoringRecipe(input, output.getDefaultInstance()); 65 + recipeOutput.accept(id, recipe, null); 66 + *///?} else { 67 + save(recipeOutput, ResourceKey.create(Registries.RECIPE, id)); 68 + //?} 69 + } 70 + 71 + @Override 72 + public RecipeBuilder unlockedBy(String name, Criterion<?> criterion) { 73 + return null; 74 + } 75 + //?} else { 76 + /*@Override 77 + public RecipeBuilder unlockedBy(String criterionName, CriterionTriggerInstance criterionTrigger) { 78 + return null; 79 + } 80 + 81 + @Override 82 + public void save(Consumer<FinishedRecipe> finishedRecipeConsumer, ResourceLocation recipeId) { 83 + finishedRecipeConsumer.accept(new CollisionRecipeResult()); 84 + } 85 + 86 + private class CollisionRecipeResult implements FinishedRecipe { 87 + @Override 88 + public void serializeRecipeData(JsonObject json) { 89 + json.add("input", input.toJson()); 90 + JsonObject result = new JsonObject(); 91 + result.addProperty("item", BuiltInRegistries.ITEM.getKey(output).toString()); 92 + json.add("output", result); 93 + } 94 + 95 + @Override 96 + public ResourceLocation getId() { 97 + return BuiltInRegistries.ITEM.getKey(output); 98 + } 99 + 100 + @Override 101 + public RecipeSerializer<?> getType() { 102 + return ModItemFunctions.CHROMATIC_COLORING.get(); 103 + } 104 + 105 + @Override 106 + public @Nullable JsonObject serializeAdvancement() { 107 + return null; 108 + } 109 + 110 + @Override 111 + public @Nullable ResourceLocation getAdvancementId() { 112 + return null; 113 + } 114 + } 115 + *///?} 116 + 117 + }
+160
src/main/java/net/lerariemann/infinity/data/recipe/CollisionRecipeBuilder.java
··· 1 + package net.lerariemann.infinity.data.recipe; 2 + 3 + 4 + import net.lerariemann.infinity.item.function.CollisionCraftingRecipe; 5 + import net.lerariemann.infinity.util.InfinityMethods; 6 + import net.minecraft.advancements.Advancement; 7 + import net.minecraft.core.registries.BuiltInRegistries; 8 + import net.minecraft.core.registries.Registries; 9 + import net.minecraft.data.recipes.RecipeBuilder; 10 + //? >1.21 { 11 + import net.minecraft.data.recipes.RecipeOutput; 12 + import net.minecraft.advancements.AdvancementHolder; 13 + import net.minecraft.advancements.Criterion; 14 + //?} else { 15 + /*import net.minecraft.data.recipes.FinishedRecipe; 16 + import net.lerariemann.infinity.registry.core.ModItemFunctions; 17 + import com.google.gson.JsonObject; 18 + import net.minecraft.advancements.CriterionTriggerInstance; 19 + *///?} 20 + import net.minecraft.resources.ResourceKey; 21 + import net.minecraft.resources.ResourceLocation; 22 + import net.minecraft.world.item.Item; 23 + import net.minecraft.world.item.crafting.Ingredient; 24 + import net.minecraft.world.item.crafting.Recipe; 25 + import net.minecraft.world.item.crafting.RecipeSerializer; 26 + import net.minecraft.world.item.crafting.RecipeType; 27 + import net.minecraft.world.level.ItemLike; 28 + import org.jetbrains.annotations.Nullable; 29 + 30 + import java.util.Locale; 31 + import java.util.function.Consumer; 32 + 33 + public class CollisionRecipeBuilder implements RecipeBuilder { 34 + private final CollisionCraftingRecipe.Type type; 35 + private final Ingredient input; 36 + private final Item output; 37 + private final String lore; 38 + 39 + CollisionRecipeBuilder(CollisionCraftingRecipe.Type type, Ingredient input, ItemLike output, String lore) { 40 + //? if >1.21 { 41 + if (lore.isEmpty()) { 42 + this.lore = "empty"; 43 + } else { 44 + this.lore = lore; 45 + } 46 + //?} else { 47 + /*this.lore = lore; 48 + *///?} 49 + this.type = type; 50 + this.input = input; 51 + this.output = output.asItem(); 52 + 53 + } 54 + 55 + @Override 56 + public RecipeBuilder group(@Nullable String groupName) { 57 + return null; 58 + } 59 + 60 + public ResourceLocation getDefaultId() { 61 + return InfinityMethods.getId(BuiltInRegistries.ITEM.getKey(output).getPath() + "_from_" + type.name().toLowerCase(Locale.ROOT)); 62 + } 63 + 64 + @Override 65 + public Item getResult() { 66 + return this.output; 67 + } 68 + 69 + //? if >1.21.2 { 70 + public void save(RecipeOutput recipeOutput, ResourceKey<Recipe<?>> id) { 71 + CollisionCraftingRecipe recipe = switch (type) { 72 + case IRIDESCENCE -> new CollisionCraftingRecipe.OfIridescence(input, output.getDefaultInstance(), lore); 73 + case PORTAL -> new CollisionCraftingRecipe.OfPortal(input, output.getDefaultInstance(), lore); 74 + }; 75 + recipeOutput.accept(id, recipe, null); 76 + } 77 + //?} 78 + 79 + //? >1.21 { 80 + public void save(RecipeOutput recipeOutput, ResourceLocation id) { 81 + //? if <1.21.2 { 82 + /*CollisionCraftingRecipe recipe = switch (type) { 83 + case IRIDESCENCE -> new CollisionCraftingRecipe.OfIridescence(input, output.getDefaultInstance(), lore); 84 + case PORTAL -> new CollisionCraftingRecipe.OfPortal(input, output.getDefaultInstance(), lore); 85 + }; 86 + recipeOutput.accept(id, recipe, null); 87 + *///?} else { 88 + save(recipeOutput, ResourceKey.create(Registries.RECIPE, id)); 89 + //?} 90 + } 91 + 92 + @Override 93 + public void save(RecipeOutput recipeOutput) { 94 + save(recipeOutput, getDefaultId()); 95 + } 96 + 97 + @Override 98 + public void save(RecipeOutput recipeOutput, String id) { 99 + save(recipeOutput, ResourceLocation.parse(id)); 100 + } 101 + 102 + @Override 103 + public RecipeBuilder unlockedBy(String name, Criterion<?> criterion) { 104 + return null; 105 + } 106 + //?} else { 107 + /*@Override 108 + public RecipeBuilder unlockedBy(String criterionName, CriterionTriggerInstance criterionTrigger) { 109 + return null; 110 + } 111 + 112 + @Override 113 + public void save(Consumer<FinishedRecipe> finishedRecipeConsumer, ResourceLocation recipeId) { 114 + finishedRecipeConsumer.accept(new CollisionRecipeResult()); 115 + } 116 + 117 + @Override 118 + public void save(Consumer<FinishedRecipe> finishedRecipeConsumer, String recipeId) { 119 + save(finishedRecipeConsumer, new ResourceLocation(recipeId)); 120 + } 121 + 122 + private class CollisionRecipeResult implements FinishedRecipe { 123 + @Override 124 + public void serializeRecipeData(JsonObject json) { 125 + if (!lore.isEmpty()) { 126 + json.addProperty("lore", lore); 127 + } 128 + 129 + json.add("input", input.toJson()); 130 + JsonObject result = new JsonObject(); 131 + result.addProperty("item", BuiltInRegistries.ITEM.getKey(output).toString()); 132 + json.add("output", result); 133 + } 134 + 135 + @Override 136 + public ResourceLocation getId() { 137 + return getDefaultId(); 138 + } 139 + 140 + @Override 141 + public RecipeSerializer<?> getType() { 142 + return switch (type) { 143 + case IRIDESCENCE -> ModItemFunctions.IRIDESCENCE_CRAFTING.get(); 144 + case PORTAL -> ModItemFunctions.PORTAL_CRAFTING.get(); 145 + }; 146 + } 147 + 148 + @Override 149 + public @Nullable JsonObject serializeAdvancement() { 150 + return null; 151 + } 152 + 153 + @Override 154 + public @Nullable ResourceLocation getAdvancementId() { 155 + return null; 156 + } 157 + } 158 + *///?} 159 + 160 + }
+303
src/main/java/net/lerariemann/infinity/data/recipe/InfinityRecipeProvider.java
··· 1 + package net.lerariemann.infinity.data.recipe; 2 + 3 + //? fabric { 4 + 5 + import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; 6 + import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; 7 + import net.lerariemann.infinity.item.function.CollisionCraftingRecipe; 8 + import net.lerariemann.infinity.registry.var.ModTags; 9 + import net.minecraft.core.HolderLookup; 10 + import net.minecraft.core.registries.BuiltInRegistries; 11 + import net.minecraft.data.recipes.*; 12 + import net.minecraft.tags.ItemTags; 13 + import net.minecraft.tags.TagKey; 14 + import net.minecraft.world.item.Item; 15 + import net.minecraft.world.item.ItemStack; 16 + import net.minecraft.world.item.crafting.Ingredient; 17 + import net.minecraft.world.level.ItemLike; 18 + import java.util.Locale; 19 + import java.util.concurrent.CompletableFuture; 20 + import java.util.function.Consumer; 21 + import java.util.function.Supplier; 22 + 23 + import static net.lerariemann.infinity.registry.core.ModItems.*; 24 + import static net.minecraft.data.recipes.RecipeCategory.BUILDING_BLOCKS; 25 + import static net.minecraft.data.recipes.RecipeCategory.MISC; 26 + import static net.minecraft.world.item.Items.*; 27 + 28 + public class InfinityRecipeProvider extends FabricRecipeProvider { 29 + public InfinityRecipeProvider(FabricDataOutput output, CompletableFuture<HolderLookup.Provider> registriesFuture) { 30 + super(output 31 + //? if >1.21 { 32 + , registriesFuture 33 + //?} 34 + ); 35 + } 36 + 37 + 38 + //? if >1.21.6 { 39 + @Override 40 + protected RecipeProvider createRecipeProvider(HolderLookup.Provider registryLookup, RecipeOutput exporter) { 41 + return new RecipeProvider(registryLookup, exporter) { 42 + 43 + @Override 44 + public void buildRecipes() { 45 + 46 + //?} else if >1.21 { 47 + 48 + /*@Override 49 + public void buildRecipes(RecipeOutput output) { 50 + 51 + *///?} else { 52 + /*@Override 53 + public void buildRecipes(Consumer<net.minecraft.data.recipes.FinishedRecipe> output) { 54 + *///?} 55 + 56 + 57 + // start recipes 58 + 59 + shaped(RecipeCategory.REDSTONE, ALTAR_ITEM.get()) 60 + .pattern("SSS") 61 + .pattern(" B ") 62 + .pattern(" B ") 63 + .define('S', STONE_SLAB) 64 + .define('B', BOOK_BOX_ITEM.get()) 65 + // Create an advancement that gives you the recipe 66 + .unlockedBy(getHasName(BOOK_BOX_ITEM.get()), has(BOOK_BOX_ITEM.get())) 67 + .save(output); 68 + 69 + shaped(BUILDING_BLOCKS, ANT_ITEM.get()) 70 + .pattern("WBW") 71 + .pattern("BMB") 72 + .pattern("WBW") 73 + .define('M', STAR_OF_LANG.get()) 74 + .define('W', WHITE_CONCRETE) 75 + .define('B', BLACK_CONCRETE) 76 + // Create an advancement that gives you the recipe 77 + .unlockedBy(getHasName(STAR_OF_LANG.get()), has(STAR_OF_LANG.get())) 78 + .save(output); 79 + 80 + shaped(BUILDING_BLOCKS, ANT_ITEM.get()) 81 + .pattern("WBW") 82 + .pattern("B B") 83 + .pattern("WBW") 84 + .define('W', WHITE_CONCRETE) 85 + .define('B', BLACK_CONCRETE) 86 + // Create an advancement that gives you the recipe 87 + .unlockedBy(getHasName(STAR_OF_LANG.get()), has(STAR_OF_LANG.get())) 88 + .save(output, "infinity:ant1"); 89 + 90 + shaped(MISC, COSMIC_ALTAR_ITEM.get()) 91 + .pattern("LAL") 92 + .pattern("ASA") 93 + .pattern("LAL") 94 + .define('L', LODESTONE) 95 + .define('A', ALTAR_ITEM.get()) 96 + .define('S', IRIDESCENT_STAR.get()) 97 + // Create an advancement that gives you the recipe 98 + .unlockedBy(getHasName(IRIDESCENT_STAR.get()), has(IRIDESCENT_STAR.get())) 99 + .save(output); 100 + 101 + shaped(BUILDING_BLOCKS, CURSOR_ITEM.get(), 8) 102 + .pattern("BLB") 103 + .pattern("LSL") 104 + .pattern("BLB") 105 + .define('S', STAR_OF_LANG.get()) 106 + .define('L', LIME_CONCRETE) 107 + .define('B', BLACK_CONCRETE) 108 + // Create an advancement that gives you the recipe 109 + .unlockedBy(getHasName(STAR_OF_LANG.get()), has(STAR_OF_LANG.get())) 110 + .save(output); 111 + 112 + shaped(MISC, F4.get()) 113 + .pattern("OOO") 114 + .pattern("OSO") 115 + .pattern("OOO") 116 + .define('O', OBSIDIAN) 117 + .define('S', IRIDESCENT_STAR.get()) 118 + // Create an advancement that gives you the recipe 119 + .unlockedBy(getHasName(IRIDESCENT_STAR.get()), has(IRIDESCENT_STAR.get())) 120 + .save(output); 121 + 122 + shaped(MISC, FOOTPRINT.get(), 8) 123 + .pattern("PPP") 124 + .pattern("P P") 125 + .pattern("PPP") 126 + .define('P', LIGHT_GRAY_STAINED_GLASS_PANE) 127 + // Create an advancement that gives you the recipe 128 + .unlockedBy(getHasName(LIGHT_GRAY_STAINED_GLASS_PANE), has(LIGHT_GRAY_STAINED_GLASS_PANE)) 129 + .save(output); 130 + 131 + 132 + shaped(MISC, HOME_ITEM.get()) 133 + .pattern("GGG") 134 + .pattern("GSG") 135 + .pattern("GGG") 136 + .define('S', STAR_OF_LANG.get()) 137 + .define('G', GRASS_BLOCK) 138 + // Create an advancement that gives you the recipe 139 + .unlockedBy(getHasName(STAR_OF_LANG.get()), has(STAR_OF_LANG.get())) 140 + .save(output); 141 + 142 + shaped(BUILDING_BLOCKS, NETHERITE_SLAB_ITEM.get(), 6) 143 + .pattern("###") 144 + .define('#', NETHERITE_BLOCK) 145 + // Create an advancement that gives you the recipe 146 + .unlockedBy(getHasName(NETHERITE_BLOCK), has(NETHERITE_BLOCK)) 147 + .save(output); 148 + 149 + shaped(BUILDING_BLOCKS, NETHERITE_STAIRS_ITEM.get(), 4) 150 + .pattern("# ") 151 + .pattern("## ") 152 + .pattern("###") 153 + .define('#', NETHERITE_BLOCK) 154 + // Create an advancement that gives you the recipe 155 + .unlockedBy(getHasName(NETHERITE_BLOCK), has(NETHERITE_BLOCK)) 156 + .save(output); 157 + 158 + stonecutterResultFromBase(output, BUILDING_BLOCKS, NETHERITE_BLOCK, NETHERITE_STAIRS_ITEM.get()); 159 + stonecutterResultFromBase(output, BUILDING_BLOCKS, NETHERITE_BLOCK, NETHERITE_SLAB_ITEM.get(), 2); 160 + 161 + 162 + shaped(MISC, BLACK_MATTER.get()) 163 + .pattern("BBB") 164 + .pattern("B B") 165 + .pattern("BBB") 166 + .define('B', BLACK_CONCRETE) 167 + // Create an advancement that gives you the recipe 168 + .unlockedBy(getHasName(BLACK_CONCRETE), has(BLACK_CONCRETE)) 169 + .save(output); 170 + 171 + shaped(MISC, WHITE_MATTER.get()) 172 + .pattern("BBB") 173 + .pattern("B B") 174 + .pattern("BBB") 175 + .define('B', WHITE_CONCRETE) 176 + // Create an advancement that gives you the recipe 177 + .unlockedBy(getHasName(WHITE_CONCRETE), has(WHITE_CONCRETE)) 178 + .save(output); 179 + 180 + shaped(BUILDING_BLOCKS, IRIDESCENT_CARPET.get(), 3) 181 + .pattern("BB") 182 + .define('B', IRIDESCENT_WOOL.get()) 183 + // Create an advancement that gives you the recipe 184 + .unlockedBy(getHasName(IRIDESCENT_WOOL.get()), has(IRIDESCENT_WOOL.get())) 185 + .save(output, "infinity:iridescent_carpet_from_wool"); 186 + 187 + portal(LECTERN, ALTAR_ITEM.get()).save(output); 188 + portal(GLASS_BOTTLE, BIOME_BOTTLE_ITEM.get()).save(output); 189 + portal(BOOKSHELF, BOOK_BOX_ITEM.get()).save(output); 190 + portal(ItemTags.WOOL, CHROMATIC_WOOL).save(output, "infinity:chromatic_wool"); 191 + portal(F4, F4, "recipe_info.portal.infinity.attuned").save(output); 192 + portal(CHROMATIC_POTION, IRIDESCENT_POTION, "").save(output, "infinity:iridescence_bottle_from_portal"); 193 + iridescence(CHROMATIC_WOOL, IRIDESCENT_WOOL).save(output, "infinity:iridescent_wool"); 194 + iridescence(CHROMATIC_CARPET, IRIDESCENT_CARPET).save(output, "infinity:iridescent_carpet"); 195 + iridescence(STAR_OF_LANG, IRIDESCENT_STAR).save(output, "infinity:iridescent_star"); 196 + portal(ItemTags.WOOL_CARPETS, CHROMATIC_CARPET, "recipe_info.portal.infinity.color").save(output); 197 + portal(ModTags.MATTER, CHROMATIC_MATTER).save(output, "infinity:chromatic_matter"); 198 + iridescence(CHROMATIC_MATTER, CHROMATIC_MATTER, "recipe_info.iridescence.infinity.chromatic_matter").save(output); 199 + portal(AMETHYST_SHARD, TRANSFINITE_KEY.get(), "recipe_info.portal.infinity.attuned").save(output, "infinity:key_from_portal"); 200 + iridescence(TRANSFINITE_KEY, TRANSFINITE_KEY, "recipe_info.iridescence.infinity.key").save(output, "infinity:key_from_iridescence"); 201 + portal(NOTE_BLOCK, NOTES_BLOCK_ITEM.get()).save(output); 202 + portal(TNT, TIME_BOMB_ITEM.get()).save(output, "infinity:timebomb_from_portal"); 203 + color(ItemTags.WOOL, CHROMATIC_WOOL).save(output, "infinity:chromatic_coloring_wool"); 204 + color(ItemTags.WOOL_CARPETS, CHROMATIC_CARPET).save(output, "infinity:chromatic_coloring_carpet"); 205 + 206 + // end recipes 207 + } 208 + 209 + private RecipeBuilder color(TagKey<Item> input, Supplier<? extends Item> output) { 210 + 211 + //? if >1.21.2 { 212 + return new ChromaticColoringRecipeBuilder(tag(input), output.get()); 213 + //?} else { 214 + /*return new ChromaticColoringRecipeBuilder(Ingredient.of(input), output.get()); 215 + *///?} 216 + } 217 + private RecipeBuilder portal(TagKey<Item> input, Supplier<? extends Item> output) { 218 + //? if >1.21.2 { 219 + return portal(tag(input), output.get()); 220 + //?} else { 221 + /*return portal(Ingredient.of(input), output.get()); 222 + *///?} 223 + } 224 + 225 + private RecipeBuilder portal(TagKey<Item> input, Supplier<? extends Item> output, String lore) { 226 + //? if >1.21.2 { 227 + return collision(CollisionCraftingRecipe.Type.PORTAL, tag(input), output.get(), lore); 228 + //?} else { 229 + /*return collision(CollisionCraftingRecipe.Type.PORTAL, Ingredient.of(input), output.get(), lore); 230 + *///?} 231 + } 232 + 233 + 234 + private CollisionRecipeBuilder collision(CollisionCraftingRecipe.Type type, Ingredient input, ItemLike output, String lore) { 235 + return new CollisionRecipeBuilder(type, input, output, lore); 236 + } 237 + private CollisionRecipeBuilder collision(CollisionCraftingRecipe.Type type, ItemLike input, ItemLike output, String lore) { 238 + return collision(type, Ingredient.of(input), output, lore); 239 + } 240 + 241 + private CollisionRecipeBuilder collision(CollisionCraftingRecipe.Type type, ItemLike input, ItemLike output) { 242 + return collision(type, input, output, ""); 243 + } 244 + 245 + private CollisionRecipeBuilder portal(ItemLike input, ItemLike output) { 246 + return collision(CollisionCraftingRecipe.Type.PORTAL, input, output); 247 + } 248 + private CollisionRecipeBuilder portal(Ingredient input, ItemLike output) { 249 + return collision(CollisionCraftingRecipe.Type.PORTAL, input, output, ""); 250 + } 251 + 252 + private CollisionRecipeBuilder portal(ItemLike input, ItemLike output, String lore) { 253 + return collision(CollisionCraftingRecipe.Type.PORTAL, input, output, lore); 254 + } 255 + 256 + private RecipeBuilder portal(Ingredient input, Item output, String lore) { 257 + return collision(CollisionCraftingRecipe.Type.PORTAL, input, output, lore); 258 + } 259 + 260 + private CollisionRecipeBuilder iridescence(ItemLike input, ItemLike output) { 261 + return collision(CollisionCraftingRecipe.Type.IRIDESCENCE, input, output); 262 + } 263 + 264 + private CollisionRecipeBuilder iridescence(ItemLike input, ItemLike output, String lore) { 265 + return collision(CollisionCraftingRecipe.Type.IRIDESCENCE, input, output, lore); 266 + } 267 + 268 + private RecipeBuilder portal(Supplier<? extends Item> input, Supplier<? extends Item> output, String lore) { 269 + return portal(input.get(), output.get(), lore); 270 + } 271 + 272 + private CollisionRecipeBuilder iridescence(Supplier<? extends Item> input, Supplier<? extends Item> output, String lore) { 273 + return iridescence(input.get(), output.get(), lore); 274 + } 275 + 276 + private CollisionRecipeBuilder iridescence(Supplier<? extends Item> input, Supplier<? extends Item> output) { 277 + return iridescence(input.get(), output.get()); 278 + } 279 + 280 + //? if <1.21.6 { 281 + /*private ShapedRecipeBuilder shaped(RecipeCategory recipeCategory, Item item) { 282 + return ShapedRecipeBuilder.shaped(recipeCategory, item); 283 + } 284 + private ShapedRecipeBuilder shaped(RecipeCategory recipeCategory, Item item, int i) { 285 + return ShapedRecipeBuilder.shaped(recipeCategory, item, i); 286 + } 287 + *///?} else { 288 + private void stonecutterResultFromBase(RecipeOutput output, RecipeCategory recipeCategory, Item item1, Item item) { 289 + stonecutterResultFromBase(recipeCategory, item1, item); 290 + } 291 + private void stonecutterResultFromBase(RecipeOutput output, RecipeCategory recipeCategory, Item item1, Item item, int i) { 292 + stonecutterResultFromBase(recipeCategory, item1, item, i); 293 + } 294 + }; 295 + } 296 + //?} 297 + 298 + @Override 299 + public String getName() { 300 + return "infinity"; 301 + } 302 + } 303 + //?}
+76
src/main/java/net/lerariemann/infinity/data/tags/InfinityBlockTagProvider.java
··· 1 + package net.lerariemann.infinity.data.tags; 2 + 3 + //? fabric { 4 + 5 + import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; 6 + import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; 7 + import net.lerariemann.infinity.registry.core.ModBlocks; 8 + import net.lerariemann.infinity.registry.var.ModTags; 9 + import net.lerariemann.infinity.util.VersionMethods; 10 + import net.minecraft.core.HolderLookup; 11 + import net.minecraft.core.registries.Registries; 12 + import net.minecraft.tags.BlockTags; 13 + import net.minecraft.tags.TagKey; 14 + import net.minecraft.world.level.block.Block; 15 + 16 + import java.util.concurrent.CompletableFuture; 17 + 18 + public class InfinityBlockTagProvider extends FabricTagProvider.BlockTagProvider { 19 + public InfinityBlockTagProvider(FabricDataOutput output, CompletableFuture<HolderLookup.Provider> registriesFuture) { 20 + super(output, registriesFuture); 21 + } 22 + 23 + @Override 24 + protected void addTags(HolderLookup.Provider provider) { 25 + valueLookupBuilder(ModTags.IRIDESCENT_BLOCKS).add( 26 + ModBlocks.IRIDESCENT_WOOL.get(), 27 + ModBlocks.IRIDESCENT_CARPET.get(), 28 + ModBlocks.IRIDESCENCE.get(), 29 + ModBlocks.COSMIC_ALTAR.get() 30 + ); 31 + valueLookupBuilder(BlockTags.WOOL).add( 32 + ModBlocks.IRIDESCENT_WOOL.get(), 33 + ModBlocks.CHROMATIC_WOOL.get() 34 + ); 35 + valueLookupBuilder(BlockTags.WOOL_CARPETS).add( 36 + ModBlocks.IRIDESCENT_CARPET.get(), 37 + ModBlocks.CHROMATIC_CARPET.get() 38 + ); 39 + valueLookupBuilder(BlockTags.MINEABLE_WITH_AXE).add( 40 + ModBlocks.BOOK_BOX.get() 41 + ); 42 + valueLookupBuilder(BlockTags.MINEABLE_WITH_PICKAXE).add( 43 + ModBlocks.ALTAR.get(), 44 + ModBlocks.CURSOR.get(), 45 + ModBlocks.NETHERITE_SLAB.get(), 46 + ModBlocks.NETHERITE_STAIRS.get(), 47 + ModBlocks.BIOME_BOTTLE.get(), 48 + ModBlocks.ANT.get(), 49 + ModBlocks.COSMIC_ALTAR.get() 50 + ); 51 + valueLookupBuilder(BlockTags.PORTALS).add( 52 + ModBlocks.PORTAL.get() 53 + ); 54 + valueLookupBuilder(BlockTags.SLABS).add( 55 + ModBlocks.NETHERITE_SLAB.get() 56 + ); 57 + valueLookupBuilder(BlockTags.STAIRS).add( 58 + ModBlocks.NETHERITE_STAIRS.get() 59 + ); 60 + } 61 + 62 + //? <1.21.2 { 63 + /*private FabricTagProvider<Block>.FabricTagBuilder valueLookupBuilder(TagKey<Block> buckets) { 64 + return getOrCreateTagBuilder(buckets); 65 + } 66 + *///?} 67 + 68 + private TagKey<Block> convention(String id) { 69 + return TagKey.create(Registries.BLOCK, VersionMethods.id("c", id)); 70 + } 71 + 72 + private TagKey<Block> infinity(String id) { 73 + return TagKey.create(Registries.BLOCK, VersionMethods.id("infinity", id)); 74 + } 75 + } 76 + //?}
+51
src/main/java/net/lerariemann/infinity/data/tags/InfinityEntityTagProvider.java
··· 1 + package net.lerariemann.infinity.data.tags; 2 + 3 + //? fabric { 4 + 5 + import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; 6 + import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; 7 + import net.lerariemann.infinity.registry.core.ModEntities; 8 + import net.lerariemann.infinity.util.VersionMethods; 9 + import net.minecraft.core.HolderLookup; 10 + import net.minecraft.core.registries.Registries; 11 + import net.minecraft.tags.EntityTypeTags; 12 + import net.minecraft.tags.TagKey; 13 + import net.minecraft.world.entity.EntityType; 14 + 15 + import java.util.concurrent.CompletableFuture; 16 + 17 + public class InfinityEntityTagProvider extends FabricTagProvider.EntityTypeTagProvider { 18 + public InfinityEntityTagProvider(FabricDataOutput output, CompletableFuture<HolderLookup.Provider> registriesFuture) { 19 + super(output, registriesFuture); 20 + } 21 + 22 + @Override 23 + protected void addTags(HolderLookup.Provider provider) { 24 + //? if >1.21 { 25 + valueLookupBuilder(EntityTypeTags.ARTHROPOD).add( 26 + ModEntities.ANT.get() 27 + ); 28 + //?} 29 + valueLookupBuilder(EntityTypeTags.SKELETONS).add( 30 + ModEntities.CHAOS_SKELETON.get() 31 + ); 32 + valueLookupBuilder(EntityTypeTags.FROG_FOOD).add( 33 + ModEntities.CHAOS_SLIME.get() 34 + ); 35 + } 36 + 37 + //? <1.21.2 { 38 + /*private FabricTagProvider<EntityType<?>>.FabricTagBuilder valueLookupBuilder(TagKey<EntityType<?>> buckets) { 39 + return getOrCreateTagBuilder(buckets); 40 + } 41 + *///?} 42 + 43 + private TagKey<EntityType<?>> convention(String id) { 44 + return TagKey.create(Registries.ENTITY_TYPE, VersionMethods.id("c", id)); 45 + } 46 + 47 + private TagKey<EntityType<?>> infinity(String id) { 48 + return TagKey.create(Registries.ENTITY_TYPE, VersionMethods.id("infinity", id)); 49 + } 50 + } 51 + //?}
+44
src/main/java/net/lerariemann/infinity/data/tags/InfinityFluidTagProvider.java
··· 1 + package net.lerariemann.infinity.data.tags; 2 + 3 + //? fabric { 4 + 5 + import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; 6 + import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; 7 + import net.lerariemann.infinity.util.VersionMethods; 8 + import net.lerariemann.infinity.util.platform.fabric.ModFluidsFabric; 9 + import net.minecraft.core.HolderLookup; 10 + import net.minecraft.core.registries.Registries; 11 + import net.minecraft.tags.FluidTags; 12 + import net.minecraft.tags.TagKey; 13 + import net.minecraft.world.level.material.Fluid; 14 + 15 + import java.util.concurrent.CompletableFuture; 16 + 17 + public class InfinityFluidTagProvider extends FabricTagProvider.FluidTagProvider { 18 + public InfinityFluidTagProvider(FabricDataOutput output, CompletableFuture<HolderLookup.Provider> registriesFuture) { 19 + super(output, registriesFuture); 20 + } 21 + 22 + @Override 23 + protected void addTags(HolderLookup.Provider provider) { 24 + valueLookupBuilder(FluidTags.WATER).add( 25 + ModFluidsFabric.IRIDESCENCE_FLOWING.get(), 26 + ModFluidsFabric.IRIDESCENCE_STILL.get() 27 + ); 28 + } 29 + 30 + //? <1.21.2 { 31 + /*private FabricTagProvider<Fluid>.FabricTagBuilder valueLookupBuilder(TagKey<Fluid> buckets) { 32 + return getOrCreateTagBuilder(buckets); 33 + } 34 + *///?} 35 + 36 + private TagKey<Fluid> convention(String id) { 37 + return TagKey.create(Registries.FLUID, VersionMethods.id("c", id)); 38 + } 39 + 40 + private TagKey<Fluid> infinity(String id) { 41 + return TagKey.create(Registries.FLUID, VersionMethods.id("infinity", id)); 42 + } 43 + } 44 + //?}
+63
src/main/java/net/lerariemann/infinity/data/tags/InfinityItemTagProvider.java
··· 1 + package net.lerariemann.infinity.data.tags; 2 + 3 + //? fabric { 4 + 5 + import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; 6 + import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; 7 + import net.lerariemann.infinity.registry.core.ModItems; 8 + import net.lerariemann.infinity.registry.var.ModTags; 9 + import net.lerariemann.infinity.util.VersionMethods; 10 + import net.minecraft.core.HolderLookup; 11 + import net.minecraft.core.registries.Registries; 12 + import net.minecraft.tags.ItemTags;import net.minecraft.tags.TagKey; 13 + import net.minecraft.world.item.Item; 14 + 15 + import java.util.concurrent.CompletableFuture; 16 + 17 + public class InfinityItemTagProvider extends FabricTagProvider.ItemTagProvider { 18 + public InfinityItemTagProvider(FabricDataOutput output, CompletableFuture<HolderLookup.Provider> registriesFuture) { 19 + super(output, registriesFuture); 20 + } 21 + 22 + @Override 23 + protected void addTags(HolderLookup.Provider provider) { 24 + valueLookupBuilder(convention("buckets")).add(ModItems.IRIDESCENCE_BUCKET.get()); 25 + valueLookupBuilder(ModTags.IRIDESCENT_ITEMS).add( 26 + ModItems.IRIDESCENT_WOOL.get(), 27 + ModItems.IRIDESCENT_CARPET.get(), 28 + ModItems.IRIDESCENCE_BUCKET.get(), 29 + ModItems.IRIDESCENT_STAR.get(), 30 + ModItems.IRIDESCENT_POTION.get(), 31 + ModItems.CHROMATIC_POTION.get(), 32 + ModItems.COSMIC_ALTAR_ITEM.get() 33 + ); 34 + valueLookupBuilder(ModTags.MATTER).add( 35 + ModItems.BLACK_MATTER.get(), 36 + ModItems.CHROMATIC_MATTER.get(), 37 + ModItems.WHITE_MATTER.get() 38 + ); 39 + valueLookupBuilder(ItemTags.WOOL).add( 40 + ModItems.IRIDESCENT_WOOL.get(), 41 + ModItems.CHROMATIC_WOOL.get() 42 + ); 43 + valueLookupBuilder(ItemTags.WOOL_CARPETS).add( 44 + ModItems.IRIDESCENT_CARPET.get(), 45 + ModItems.CHROMATIC_CARPET.get() 46 + ); 47 + } 48 + 49 + //? <1.21.2 { 50 + /*private FabricTagProvider<Item>.FabricTagBuilder valueLookupBuilder(TagKey<Item> buckets) { 51 + return getOrCreateTagBuilder(buckets); 52 + } 53 + *///?} 54 + 55 + private TagKey<Item> convention(String id) { 56 + return TagKey.create(Registries.ITEM, VersionMethods.id("c", id)); 57 + } 58 + 59 + private TagKey<Item> infinity(String id) { 60 + return TagKey.create(Registries.ITEM, VersionMethods.id("infinity", id)); 61 + } 62 + } 63 + //?}
+6 -6
src/main/java/net/lerariemann/infinity/entity/client/DimensionalSlimeCoreRenderer.java
··· 18 18 import net.minecraft.core.BlockPos; 19 19 import net.minecraft.world.level.block.state.BlockState; 20 20 //? if >1.21.6 && neoforge { 21 - import net.neoforged.neoforge.client.RenderTypeHelper; 22 - //?} 21 + /*import net.neoforged.neoforge.client.RenderTypeHelper; 22 + *///?} 23 23 24 24 public class DimensionalSlimeCoreRenderer extends 25 25 ··· 100 100 *///?} else if >1.21.6 { 101 101 ModelBlockRenderer.renderModel(matrices.last(), vertexConsumers.getBuffer( 102 102 //? if neoforge { 103 - RenderTypeHelper.getMovingBlockRenderType(ItemBlockRenderTypes.getChunkRenderType(coreState))), 104 - //?} else { 105 - /*ItemBlockRenderTypes.getMovingBlockRenderType(coreState)), 106 - *///?} 103 + /*RenderTypeHelper.getMovingBlockRenderType(ItemBlockRenderTypes.getChunkRenderType(coreState))), 104 + *///?} else { 105 + ItemBlockRenderTypes.getMovingBlockRenderType(coreState)), 106 + //?} 107 107 coreModel,1.0f, 1.0f, 1.0f, light, overlay); 108 108 //?} else { 109 109 /*this.blockRenderManager.getModelRenderer().renderModel(matrices.last(), vertexConsumers.getBuffer(ItemBlockRenderTypes.getChunkRenderType(coreState)), coreState, coreModel, 1.0f, 1.0f, 1.0f, light, overlay);
+4 -4
src/main/java/net/lerariemann/infinity/entity/custom/ChaosCreeper.java
··· 54 54 import org.jetbrains.annotations.Nullable; 55 55 56 56 //? if neoforge { 57 - import javax.annotation.ParametersAreNonnullByDefault; 57 + /*import javax.annotation.ParametersAreNonnullByDefault; 58 58 59 59 60 - //?} 60 + *///?} 61 61 62 62 @MethodsReturnNonnullByDefault 63 63 //? if neoforge { 64 - @ParametersAreNonnullByDefault 65 - //?} 64 + /*@ParametersAreNonnullByDefault 65 + *///?} 66 66 public class ChaosCreeper extends Creeper implements TintableEntity { 67 67 public static EntityDataAccessor<Integer> color = SynchedEntityData.defineId(ChaosCreeper.class, EntityDataSerializers.INT); 68 68 public static EntityDataAccessor<Float> range = SynchedEntityData.defineId(ChaosCreeper.class, EntityDataSerializers.FLOAT);
+4 -4
src/main/java/net/lerariemann/infinity/entity/custom/ChaosPawn.java
··· 44 44 import org.jetbrains.annotations.Nullable; 45 45 46 46 //? if neoforge { 47 - import javax.annotation.ParametersAreNonnullByDefault; 48 - //?} 47 + /*import javax.annotation.ParametersAreNonnullByDefault; 48 + *///?} 49 49 import java.util.*; 50 50 import java.util.function.Supplier; 51 51 52 52 //? if neoforge { 53 - @MethodsReturnNonnullByDefault 53 + /*@MethodsReturnNonnullByDefault 54 54 @ParametersAreNonnullByDefault 55 - //?} 55 + *///?} 56 56 public class ChaosPawn extends AbstractChessFigure { 57 57 58 58 public static final EntityDataAccessor<CompoundTag> colors = SynchedEntityData.defineId(ChaosPawn.class, EntityDataSerializers.COMPOUND_TAG);
+4 -4
src/main/java/net/lerariemann/infinity/entity/custom/ChaosSkeleton.java
··· 51 51 import org.jetbrains.annotations.Nullable; 52 52 53 53 //? if neoforge { 54 - import javax.annotation.ParametersAreNonnullByDefault; 55 - //?} 54 + /*import javax.annotation.ParametersAreNonnullByDefault; 55 + *///?} 56 56 import java.util.*; 57 57 58 58 59 59 60 60 @MethodsReturnNonnullByDefault 61 61 //? if neoforge { 62 - @ParametersAreNonnullByDefault 63 - //?} 62 + /*@ParametersAreNonnullByDefault 63 + *///?} 64 64 public class ChaosSkeleton extends Skeleton implements TintableEntity { 65 65 private static final EntityDataAccessor<String> effect = SynchedEntityData.defineId(ChaosSkeleton.class, EntityDataSerializers.STRING); 66 66 private static final EntityDataAccessor<Integer> color = SynchedEntityData.defineId(ChaosSkeleton.class, EntityDataSerializers.INT);
+4 -4
src/main/java/net/lerariemann/infinity/entity/custom/ChaosSlime.java
··· 46 46 import org.jetbrains.annotations.Nullable; 47 47 48 48 //? if neoforge { 49 - import javax.annotation.ParametersAreNonnullByDefault; 50 - //?} 49 + /*import javax.annotation.ParametersAreNonnullByDefault; 50 + *///?} 51 51 import java.util.Optional; 52 52 import java.util.Random; 53 53 import java.util.function.BiConsumer; ··· 55 55 56 56 @MethodsReturnNonnullByDefault 57 57 //? if neoforge { 58 - @ParametersAreNonnullByDefault 59 - //?} 58 + /*@ParametersAreNonnullByDefault 59 + *///?} 60 60 public class ChaosSlime extends Slime implements TintableEntity { 61 61 public static final EntityDataAccessor<BlockState> core = SynchedEntityData.defineId(ChaosSlime.class, EntityDataSerializers.BLOCK_STATE); 62 62 public static final EntityDataAccessor<Integer> color = SynchedEntityData.defineId(ChaosSlime.class, EntityDataSerializers.INT);
+6 -6
src/main/java/net/lerariemann/infinity/iridescence/Iridescence.java
··· 46 46 import net.minecraft.world.phys.Vec3; 47 47 import org.jetbrains.annotations.Nullable; 48 48 //? neoforge { 49 - import net.neoforged.neoforge.event.EventHooks; 50 - //?} 49 + /*import net.neoforged.neoforge.event.EventHooks; 50 + *///?} 51 51 52 52 import java.nio.file.Files; 53 53 import java.nio.file.Path; ··· 331 331 else if (currEntity.level() instanceof ServerLevel w) 332 332 333 333 //? fabric || forge { 334 - /*newEntity.finalizeSpawn( 335 - *///?} 334 + newEntity.finalizeSpawn( 335 + //?} 336 336 //? neoforge { 337 - EventHooks.finalizeMobSpawn(newEntity, 338 - //?} 337 + /*EventHooks.finalizeMobSpawn(newEntity, 338 + *///?} 339 339 w, w.getCurrentDifficultyAt(currEntity.blockPosition()), CONVERSION, null 340 340 //? if <1.21 { 341 341 /*, null
+4 -4
src/main/java/net/lerariemann/infinity/item/F4Item.java
··· 37 37 import net.minecraft.world.level.block.state.properties.BlockStateProperties; 38 38 import org.jetbrains.annotations.Nullable; 39 39 //? if neoforge { 40 - import javax.annotation.ParametersAreNonnullByDefault; 41 - //?} 40 + /*import javax.annotation.ParametersAreNonnullByDefault; 41 + *///?} 42 42 import java.util.*; 43 43 import java.util.function.Consumer; 44 44 45 45 //? if neoforge { 46 - @ParametersAreNonnullByDefault 47 - //?} 46 + /*@ParametersAreNonnullByDefault 47 + *///?} 48 48 @MethodsReturnNonnullByDefault 49 49 public class F4Item extends Item implements PortalDataHolder.Destinable { 50 50 static final BlockState OBSIDIAN = Blocks.OBSIDIAN.defaultBlockState();
+4 -4
src/main/java/net/lerariemann/infinity/item/StarOfLangItem.java
··· 11 11 } 12 12 13 13 //? if >1.21.2 && neoforge { 14 - @Override 14 + /*@Override 15 15 public ItemStack getCraftingRemainder(ItemStack itemStack) { 16 16 return new ItemStack(ModItems.STAR_OF_LANG.get()); 17 17 } 18 - //?} 18 + *///?} 19 19 20 20 //? if neoforge && <1.21.2 { 21 21 /*@Override ··· 30 30 *///?} 31 31 32 32 //? if fabric { 33 - /*@Override 33 + @Override 34 34 public ItemStack getRecipeRemainder(ItemStack stack) { 35 35 return ModItems.STAR_OF_LANG.get().getDefaultInstance(); 36 36 } 37 - *///?} 37 + //?} 38 38 39 39 40 40 }
+4 -4
src/main/java/net/lerariemann/infinity/item/TransfiniteKeyItem.java
··· 30 30 import org.jetbrains.annotations.NotNull; 31 31 32 32 //? if neoforge { 33 - import javax.annotation.ParametersAreNonnullByDefault; 34 - //?} 33 + /*import javax.annotation.ParametersAreNonnullByDefault; 34 + *///?} 35 35 import java.util.List; 36 36 import java.util.Objects; 37 37 import java.util.Optional; 38 38 import java.util.function.Consumer; 39 39 40 40 //? if neoforge { 41 - @ParametersAreNonnullByDefault 42 - //?} 41 + /*@ParametersAreNonnullByDefault 42 + *///?} 43 43 public class TransfiniteKeyItem extends Item implements PortalDataHolder.Destinable { 44 44 public TransfiniteKeyItem(Properties settings) { 45 45 super(settings);
+3 -3
src/main/java/net/lerariemann/infinity/item/function/CollisionCraftingRecipe.java
··· 27 27 *///?} 28 28 import net.minecraft.world.level.Level; 29 29 30 - public abstract class CollisionCraftingRecipe implements Recipe 30 + public abstract class CollisionCraftingRecipe 31 31 //? if >1.21 { 32 - <SingleRecipeInput> 32 + implements Recipe<SingleRecipeInput> 33 33 //?} else { 34 - /*<ContainerSingleItem> 34 + /*implements Recipe<ContainerSingleItem> 35 35 *///?} 36 36 { 37 37 //? if =1.20.1 {
+4 -4
src/main/java/net/lerariemann/infinity/mixin/InfinityMixinPlugin.java
··· 1 1 package net.lerariemann.infinity.mixin; 2 2 3 3 //? if fabric { 4 - /*import net.fabricmc.loader.api.FabricLoader; 5 - *///?} 4 + import net.fabricmc.loader.api.FabricLoader; 5 + //?} 6 6 import org.objectweb.asm.tree.ClassNode; 7 7 import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; 8 8 import org.spongepowered.asm.mixin.extensibility.IMixinInfo; ··· 23 23 @Override 24 24 public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { 25 25 //? if fabric { 26 - /*if (mixinClassName.contains("net.lerariemann.infinity.mixin.mavity") && (FabricLoader.getInstance().isModLoaded("gravity_changer_q") || FabricLoader.getInstance().isModLoaded("gravity_changer"))){ 26 + if (mixinClassName.contains("net.lerariemann.infinity.mixin.mavity") && (FabricLoader.getInstance().isModLoaded("gravity_changer_q") || FabricLoader.getInstance().isModLoaded("gravity_changer"))){ 27 27 return false; 28 28 } 29 - *///?} 29 + //?} 30 30 return true; 31 31 } 32 32
+4 -4
src/main/java/net/lerariemann/infinity/mixin/iridescence/PostPassMixin.java
··· 55 55 *///?} 56 56 57 57 //? neoforge && >1.21.2 { 58 - @Inject(method = "lambda$addToFrame$5", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderPass;setVertexBuffer(ILcom/mojang/blaze3d/buffers/GpuBuffer;)V")) 58 + /*@Inject(method = "lambda$addToFrame$5", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderPass;setVertexBuffer(ILcom/mojang/blaze3d/buffers/GpuBuffer;)V")) 59 59 private void inj(ResourceHandle resourcehandle, GpuBufferSlice projectionMatrixBuffer, Map targets, CallbackInfo ci, @Local RenderPass renderPass) { 60 60 if (infinity$is) IridescentUniform.trySet(renderPass); 61 61 } 62 - //?} else fabric && >1.21.2 { 63 - /*@Inject(method = "method_67884", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderPass;setVertexBuffer(ILcom/mojang/blaze3d/buffers/GpuBuffer;)V")) 62 + *///?} else fabric && >1.21.2 { 63 + @Inject(method = "method_67884", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderPass;setVertexBuffer(ILcom/mojang/blaze3d/buffers/GpuBuffer;)V")) 64 64 private void inj(ResourceHandle resourcehandle, GpuBufferSlice projectionMatrixBuffer, Map targets, CallbackInfo ci, @Local RenderPass renderPass) { 65 65 if (infinity$is) IridescentUniform.trySet(renderPass); 66 66 } 67 - *///?} 67 + //?} 68 68 }
+4 -4
src/main/java/net/lerariemann/infinity/mixin/mobs/SlimeEntityMixin.java
··· 14 14 public class SlimeEntityMixin { 15 15 /* Allows chaos slimes to correctly inherit their additional data when split. */ 16 16 //? if >1.21.2 && fabric { 17 - /*@Inject(method = "method_63653", at = @At(value = "RETURN")) 17 + @Inject(method = "method_63653", at = @At(value = "RETURN")) 18 18 private void chaosSlimesSplit(int i, float f, float g, Slime instance, CallbackInfo ci) { 19 19 Slime e = ((Slime)(Object)(this)); 20 20 if (e instanceof ChaosSlime slime_mom) { ··· 23 23 slime_son.setColor(slime_mom.getEntityData().get(color)); 24 24 } 25 25 } 26 - *///?} else if >1.21.2 { 27 - @Inject(method = "lambda$remove$1", at = @At(value = "RETURN")) 26 + //?} else if >1.21.2 { 27 + /*@Inject(method = "lambda$remove$1", at = @At(value = "RETURN")) 28 28 private void chaosSlimesSplit(int i, float f, float g, Slime instance, CallbackInfo ci) { 29 29 Slime e = ((Slime)(Object)(this)); 30 30 if (e instanceof ChaosSlime slime_mom) { ··· 33 33 slime_son.setColor(slime_mom.getEntityData().get(color)); 34 34 } 35 35 } 36 - //?} else { 36 + *///?} else { 37 37 /*@Redirect(method = "remove(Lnet/minecraft/world/entity/Entity$RemovalReason;)V", at = @At(value = "INVOKE", 38 38 target = "Lnet/minecraft/world/entity/monster/Slime;setNoAi(Z)V")) 39 39 private void chaosSlimesSplit(Slime instance, boolean b) {
+12 -12
src/main/java/net/lerariemann/infinity/mixin/options/WorldRendererMixin.java
··· 28 28 import net.minecraft.client.Minecraft; 29 29 import net.minecraft.client.multiplayer.ClientLevel; 30 30 //? if >1.21.2 && neoforge { 31 - import net.neoforged.neoforge.client.IRenderableSection; 31 + /*import net.neoforged.neoforge.client.IRenderableSection; 32 32 import net.neoforged.neoforge.client.event.RenderLevelStageEvent; 33 33 import net.neoforged.neoforge.common.NeoForge; 34 - //?} 34 + *///?} 35 35 import net.minecraft.client.renderer.LevelRenderer; 36 36 import org.joml.Matrix4f; 37 37 import org.spongepowered.asm.mixin.Final; ··· 132 132 @Shadow @Final private RenderBuffers renderBuffers; 133 133 //?} 134 134 //? if >1.21.2 && neoforge { 135 - @Shadow public abstract Frustum getFrustum(); 135 + /*@Shadow public abstract Frustum getFrustum(); 136 136 @Shadow public abstract Iterable<? extends IRenderableSection> getRenderableSections(); 137 - //?} 137 + *///?} 138 138 //? if >1.21.2 { 139 139 @Unique SkyRenderer infinity$sky; 140 140 @Inject(method = "<init>", at = @At("TAIL")) ··· 143 143 } 144 144 //?} 145 145 //? if >1.21.2 && neoforge { 146 - @Inject(method = "addSkyPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/Camera;FLcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Matrix4f;)V", at = @At("HEAD"), cancellable = true) 146 + /*@Inject(method = "addSkyPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/Camera;FLcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Matrix4f;)V", at = @At("HEAD"), cancellable = true) 147 147 void inj(FrameGraphBuilder frameGraphBuilder, Camera camera, float partialTick, GpuBufferSlice shaderFog, Matrix4f modelViewMatrix, CallbackInfo ci) { 148 - //?} 148 + *///?} 149 149 //? if >1.21.2 && fabric { 150 - /*@Inject(method = "Lnet/minecraft/client/renderer/LevelRenderer;addSkyPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/Camera;FLcom/mojang/blaze3d/buffers/GpuBufferSlice;)V", at = @At("HEAD"), cancellable = true) 150 + @Inject(method = "Lnet/minecraft/client/renderer/LevelRenderer;addSkyPass(Lcom/mojang/blaze3d/framegraph/FrameGraphBuilder;Lnet/minecraft/client/Camera;FLcom/mojang/blaze3d/buffers/GpuBufferSlice;)V", at = @At("HEAD"), cancellable = true) 151 151 void inj(FrameGraphBuilder frameGraphBuilder, Camera camera, float partialTick, GpuBufferSlice shaderFog, CallbackInfo ci) { 152 - *///?} 152 + //?} 153 153 //? if >1.21.2 { 154 154 155 155 InfinityOptions options = infinity$options(); ··· 167 167 //?} 168 168 //? if >1.21.2 && neoforge { 169 169 170 - if (!this.level.effects().renderSky(this.level, ticks, partialTick, modelViewMatrix, camera, 170 + /*if (!this.level.effects().renderSky(this.level, ticks, partialTick, modelViewMatrix, camera, 171 171 () -> RenderSystem.setShaderFog(shaderFog))) { 172 - //?} 172 + *///?} 173 173 //? if >1.21.2 { 174 174 175 175 RenderSystem.setShaderFog(shaderFog); ··· 177 177 //?} 178 178 //? if >1.21.2 && neoforge { 179 179 180 - Profiler.get().push("neoforge_render_after_sky"); 180 + /*Profiler.get().push("neoforge_render_after_sky"); 181 181 NeoForge.EVENT_BUS.post(new RenderLevelStageEvent.AfterSky(this.level, (LevelRenderer)(Object)this, (PoseStack)null, modelViewMatrix, this.ticks, this.minecraft.getDeltaTracker(), camera, this.getFrustum(), this.getRenderableSections())); 182 182 Profiler.get().pop(); 183 183 } 184 - //?} 184 + *///?} 185 185 //? if >1.21.2 { 186 186 187 187 });
+19 -19
src/main/java/net/lerariemann/infinity/registry/core/ModBlockEntities.java
··· 4 4 import dev.architectury.registry.registries.DeferredRegister; 5 5 import dev.architectury.registry.registries.RegistrySupplier; 6 6 //? if fabric && >1.21.2 { 7 - /*import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityType; 7 + import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityType; 8 8 import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; 9 - *///?} 9 + //?} 10 10 import net.lerariemann.infinity.InfinityMod; 11 11 import net.lerariemann.infinity.block.custom.RailHelper; 12 12 import net.lerariemann.infinity.block.entity.*; ··· 31 31 create(InfinityPortalBlockEntity::new, 32 32 ModBlocks.PORTAL.get()) 33 33 //? if fabric || <1.21.2 34 - /*.build(type("neither_portal"))*/ 34 + .build(type("neither_portal")) 35 35 ); 36 36 public static final RegistrySupplier<BlockEntityType<CosmicAltarBlockEntity>> COSMIC_ALTAR = 37 37 BLOCK_ENTITY_TYPES.register("cosmic_altar", () -> 38 38 create(CosmicAltarBlockEntity::new, 39 39 ModBlocks.COSMIC_ALTAR.get()) 40 40 //? if fabric || <1.21.2 41 - /*.build(type("cosmic_altar"))*/ 41 + .build(type("cosmic_altar")) 42 42 ); 43 43 public static final RegistrySupplier<BlockEntityType<BiomeBottleBlockEntity>> BIOME_BOTTLE = 44 44 BLOCK_ENTITY_TYPES.register("biome_bottle", () -> 45 45 create(BiomeBottleBlockEntity::new, 46 46 ModBlocks.BIOME_BOTTLE.get()) 47 47 //? if fabric || <1.21.2 48 - /*.build(type("biome_bottle"))*/ 48 + .build(type("biome_bottle")) 49 49 ); 50 50 public static final RegistrySupplier<BlockEntityType<ChromaticBlockEntity>> CHROMATIC = 51 51 BLOCK_ENTITY_TYPES.register("chromatic", () -> ··· 53 53 ModBlocks.CHROMATIC_WOOL.get(), 54 54 ModBlocks.CHROMATIC_CARPET.get()) 55 55 //? if fabric || <1.21.2 56 - /*.build(type("chromatic"))*/ 56 + .build(type("chromatic")) 57 57 ); 58 58 public static final RegistrySupplier<BlockEntityType<RailHelper.RHBEntity>> RAIL_HELPER = 59 59 BLOCK_ENTITY_TYPES.register("rail_helper_block_entity", () -> 60 60 create(RailHelper.RHBEntity::new, 61 61 ModBlocks.RAIL_HELPER.get()) 62 62 //? if fabric || <1.21.2 63 - /*.build(type("rail_helper_block_entity"))*/ 63 + .build(type("rail_helper_block_entity")) 64 64 ); 65 65 66 66 public static <T extends BlockEntity> 67 67 //? if >1.21.2 && fabric { 68 - /*FabricBlockEntityTypeBuilder 69 - *///?} else if >1.21.2 { 70 - BlockEntityType 71 - //?} else { 68 + FabricBlockEntityTypeBuilder 69 + //?} else if >1.21.2 { 70 + /*BlockEntityType 71 + *///?} else { 72 72 /*BlockEntityType.Builder 73 73 *///?} 74 74 <T> 75 75 create( 76 76 //? if >1.21.2 && fabric { 77 - /*FabricBlockEntityTypeBuilder.Factory 78 - *///?} else if >1.21.2 { 79 - BlockEntityType.BlockEntitySupplier 80 - //?} else { 77 + FabricBlockEntityTypeBuilder.Factory 78 + //?} else if >1.21.2 { 79 + /*BlockEntityType.BlockEntitySupplier 80 + *///?} else { 81 81 /*BlockEntityType.BlockEntitySupplier 82 82 *///?} 83 83 <? extends T> factory, Block... blocks) { 84 84 //? if >1.21.2 && fabric { 85 - /*return FabricBlockEntityTypeBuilder.create(factory, blocks); 86 - *///?} else if >1.21.2 { 87 - return new BlockEntityType<>(factory, blocks); 88 - //?} else { 85 + return FabricBlockEntityTypeBuilder.create(factory, blocks); 86 + //?} else if >1.21.2 { 87 + /*return new BlockEntityType<>(factory, blocks); 88 + *///?} else { 89 89 /*return BlockEntityType.Builder.of(factory, blocks); 90 90 *///?} 91 91 }
+16 -16
src/main/java/net/lerariemann/infinity/registry/core/ModEntities.java
··· 33 33 import static net.minecraftforge.event.entity.SpawnPlacementRegisterEvent.Operation.REPLACE; 34 34 *///?} 35 35 //? if neoforge { 36 - import net.neoforged.neoforge.event.entity.RegisterSpawnPlacementsEvent; 36 + /*import net.neoforged.neoforge.event.entity.RegisterSpawnPlacementsEvent; 37 37 import static net.neoforged.neoforge.event.entity.RegisterSpawnPlacementsEvent.Operation.REPLACE; 38 - //?} 38 + *///?} 39 39 40 40 import java.util.Optional; 41 41 ··· 142 142 *///?} 143 143 location, Heightmap.Types heightmapType, SpawnPlacements.SpawnPredicate<T> predicate, 144 144 //? if neoforge { 145 - RegisterSpawnPlacementsEvent event 146 - //?} else if forge { 145 + /*RegisterSpawnPlacementsEvent event 146 + *///?} else if forge { 147 147 /*SpawnPlacementRegisterEvent event 148 148 *///?} else { 149 - /*Object event 150 - *///?} 149 + Object event 150 + //?} 151 151 ) { 152 152 //? if fabric { 153 - /*if (!SpawnPlacements.DATA_BY_TYPE.containsKey(type)) 153 + if (!SpawnPlacements.DATA_BY_TYPE.containsKey(type)) 154 154 SpawnPlacements.register(type, location, heightmapType, predicate); 155 - *///?} else { 156 - event.register(type, location, heightmapType, predicate, REPLACE); 157 - //?} 155 + //?} else { 156 + /*event.register(type, location, heightmapType, predicate, REPLACE); 157 + *///?} 158 158 } 159 159 160 160 public static void registerSpawnRestrictions( 161 161 //? if neoforge { 162 - RegisterSpawnPlacementsEvent event 163 - //?} else if forge { 162 + /*RegisterSpawnPlacementsEvent event 163 + *///?} else if forge { 164 164 /*SpawnPlacementRegisterEvent event 165 165 *///?} 166 166 ) { 167 167 //? if fabric { 168 - /*Object event = null; 168 + Object event = null; 169 169 SpawnPlacements.register(CHAOS_SLIME.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ChaosSlime::canSpawn); 170 170 SpawnPlacements.register(CHAOS_SKELETON.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChaosMonsterSpawn); 171 171 SpawnPlacements.register(CHAOS_CREEPER.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChaosMonsterSpawn); 172 172 SpawnPlacements.register(CHAOS_PAWN.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChessFigureSpawn); 173 173 SpawnPlacements.register(ANT.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChessFigureSpawn); 174 174 SpawnPlacements.register(BISHOP.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChessFigureSpawn); 175 - *///?} else { 176 - event.register(CHAOS_SLIME.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ChaosSlime::canSpawn, REPLACE); 175 + //?} else { 176 + /*event.register(CHAOS_SLIME.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ChaosSlime::canSpawn, REPLACE); 177 177 event.register(CHAOS_SKELETON.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChaosMonsterSpawn, REPLACE); 178 178 event.register(CHAOS_CREEPER.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChaosMonsterSpawn, REPLACE); 179 179 event.register(CHAOS_PAWN.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChessFigureSpawn, REPLACE); 180 180 event.register(ANT.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChessFigureSpawn, REPLACE); 181 181 event.register(BISHOP.get(), ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ModEntities::canChessFigureSpawn, REPLACE); 182 - //?} 182 + *///?} 183 183 184 184 registerSafe(EntityType.SNIFFER, ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Animal::checkAnimalSpawnRules, event); 185 185 registerSafe(EntityType.CAMEL, ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Animal::checkAnimalSpawnRules, event);
+2 -2
src/main/java/net/lerariemann/infinity/registry/core/ModStatusEffects.java
··· 31 31 32 32 public static void registerModEffectsFabric() { 33 33 //? if fabric { 34 - /*IRIDESCENT_EFFECT = (Registry.registerForHolder(BuiltInRegistries.MOB_EFFECT, InfinityMethods.getId("iridescence"), 34 + IRIDESCENT_EFFECT = (Registry.registerForHolder(BuiltInRegistries.MOB_EFFECT, InfinityMethods.getId("iridescence"), 35 35 new IridescentEffect(MobEffectCategory.NEUTRAL, 0xFF66FF))); 36 36 IRIDESCENT_SETUP = (Registry.registerForHolder(BuiltInRegistries.MOB_EFFECT, InfinityMethods.getId("iridescent_setup"), 37 37 new IridescentEffect.Setup(MobEffectCategory.NEUTRAL, 0xFF00FF))); ··· 39 39 new IridescentCooldownEffect(MobEffectCategory.NEUTRAL, 0x884488))); 40 40 AFTERGLOW = (Registry.registerForHolder(BuiltInRegistries.MOB_EFFECT, InfinityMethods.getId("afterglow"), 41 41 getAfterglowInstanceForReg())); 42 - *///?} 42 + //?} 43 43 } 44 44 45 45 public static MobEffect getAfterglowInstanceForReg() {
+22 -22
src/main/java/net/lerariemann/infinity/registry/var/ModItemGroups.java
··· 14 14 import net.minecraft.world.item.CreativeModeTabs; 15 15 import net.minecraft.world.item.Item; 16 16 //? if neoforge { 17 - import net.neoforged.bus.api.SubscribeEvent; 17 + /*import net.neoforged.bus.api.SubscribeEvent; 18 18 import net.neoforged.fml.common.EventBusSubscriber; 19 19 import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; 20 20 @EventBusSubscriber 21 - //?} else if forge { 21 + *///?} else if forge { 22 22 /*import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; 23 23 import net.minecraftforge.eventbus.api.SubscribeEvent; 24 24 import net.minecraftforge.fml.common.Mod; 25 25 @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) 26 26 *///?} else { 27 - /*import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroupEntries; 28 - *///?} 27 + import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroupEntries; 28 + //?} 29 29 30 30 public class ModItemGroups { 31 31 32 32 public static void addAfter( 33 33 //? forge || neoforge { 34 - BuildCreativeModeTabContentsEvent 35 - //?} else { 36 - /*FabricItemGroupEntries 37 - *///?} 34 + /*BuildCreativeModeTabContentsEvent 35 + *///?} else { 36 + FabricItemGroupEntries 37 + //?} 38 38 event, Item itemBefore, Item itemAfter) { 39 39 //? if neoforge { 40 - event.insertAfter(itemBefore.getDefaultInstance(), itemAfter.getDefaultInstance(), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); 41 - //?} else if fabric { 42 - /*event.addAfter(itemBefore, itemAfter); 43 - *///?} else { 40 + /*event.insertAfter(itemBefore.getDefaultInstance(), itemAfter.getDefaultInstance(), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); 41 + *///?} else if fabric { 42 + event.addAfter(itemBefore, itemAfter); 43 + //?} else { 44 44 /*event.accept(itemAfter.getDefaultInstance(), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); 45 45 *///?} 46 46 } 47 47 public static void addAfter( 48 48 //? forge || neoforge { 49 - BuildCreativeModeTabContentsEvent 50 - //?} else { 51 - /*FabricItemGroupEntries 52 - *///?} 49 + /*BuildCreativeModeTabContentsEvent 50 + *///?} else { 51 + FabricItemGroupEntries 52 + //?} 53 53 event, Item itemBefore) { 54 54 event.accept(itemBefore); 55 55 } 56 56 57 57 //MyItemsClass.MY_ITEM is a Supplier<? extends Item>, MyBlocksClass.MY_BLOCK is a Supplier<? extends Block> 58 58 //? forge || neoforge { 59 - @SubscribeEvent 59 + /*@SubscribeEvent 60 60 public static void buildContents(BuildCreativeModeTabContentsEvent event) { 61 61 buildContents(event.getTabKey(), event); 62 62 } 63 - //?} 63 + *///?} 64 64 65 65 public static void buildContents( 66 66 //? forge || neoforge { 67 - ResourceKey<CreativeModeTab> creativeModeTab, BuildCreativeModeTabContentsEvent 68 - //?} else { 69 - /*CreativeModeTab creativeModeTab, FabricItemGroupEntries 70 - *///?} 67 + /*ResourceKey<CreativeModeTab> creativeModeTab, BuildCreativeModeTabContentsEvent 68 + *///?} else { 69 + CreativeModeTab creativeModeTab, FabricItemGroupEntries 70 + //?} 71 71 event) { 72 72 // Is this the tab we want to add to? 73 73 if (equals(creativeModeTab, CreativeModeTabs.BUILDING_BLOCKS)) {
+2 -2
src/main/java/net/lerariemann/infinity/registry/var/ModMaterialRules.java
··· 24 24 import net.minecraft.world.level.levelgen.SurfaceRules; 25 25 26 26 //? if neoforge 27 - import javax.annotation.ParametersAreNonnullByDefault; 27 + /*import javax.annotation.ParametersAreNonnullByDefault;*/ 28 28 29 29 import static net.lerariemann.infinity.InfinityMod.MOD_ID; 30 30 31 31 @MethodsReturnNonnullByDefault 32 32 //? if neoforge 33 - @ParametersAreNonnullByDefault 33 + /*@ParametersAreNonnullByDefault*/ 34 34 public class ModMaterialRules { 35 35 static int normalize(int x, int size) { 36 36 int a = Math.abs(x < 0 ? x+1 : x) % size;
+4 -4
src/main/java/net/lerariemann/infinity/registry/var/ModPoi.java
··· 2 2 3 3 //? fabric { 4 4 5 - /*import net.fabricmc.fabric.api.object.builder.v1.world.poi.PointOfInterestHelper; 6 - *///?} 5 + import net.fabricmc.fabric.api.object.builder.v1.world.poi.PointOfInterestHelper; 6 + //?} 7 7 import com.google.common.collect.ImmutableSet; 8 8 import dev.architectury.registry.registries.DeferredRegister; 9 9 import dev.architectury.registry.registries.RegistrySupplier; ··· 38 38 39 39 public static void registerPoiFabric() { 40 40 //? fabric { 41 - /*PointOfInterestHelper.register(InfinityMethods.getId("neither_portal"), 0, 1, 41 + PointOfInterestHelper.register(InfinityMethods.getId("neither_portal"), 0, 1, 42 42 ImmutableSet.copyOf(ModBlocks.PORTAL.get().getStateDefinition().getPossibleStates())); 43 - *///?} 43 + //?} 44 44 } 45 45 }
+2 -2
src/main/java/net/lerariemann/infinity/registry/var/ModScreenHandlers.java
··· 21 21 public static void register() { 22 22 SCREEN_HANDLERS.register(); 23 23 //? if fabric { 24 - /*MenuScreens.register(F4.get(), F4Screen::new); 25 - *///?} 24 + MenuScreens.register(F4.get(), F4Screen::new); 25 + //?} 26 26 } 27 27 }
+4 -4
src/main/java/net/lerariemann/infinity/util/InfinityMethods.java
··· 105 105 return InfinityMethods.isBiomeInfinity(acc, pos); 106 106 } 107 107 //? if fabric { 108 - /*else return InfinityPlatform.INSTANCE.isFabric() 108 + else return InfinityPlatform.INSTANCE.isFabric() 109 109 && world.hasBiomes() 110 110 && world.getBiomeFabric(pos) != null 111 111 && InfinityMethods.isBiomeInfinity(world.getBiomeFabric(pos)); 112 - *///?} else { 113 - return false; 114 - //?} 112 + //?} else { 113 + /*return false; 114 + *///?} 115 115 } 116 116 117 117 static int properMod(int a, int b) {
+1 -1
src/main/java/net/lerariemann/infinity/util/core/Easterizer.java
··· 52 52 } 53 53 }); 54 54 } catch (IOException e) { 55 - throw new RuntimeException(e); 55 + InfinityMod.LOGGER.error("Error reading easterizer.json file!", e); 56 56 } 57 57 } 58 58
+4 -4
src/main/java/net/lerariemann/infinity/util/core/NbtUtils.java
··· 36 36 37 37 static Collection<String> keys(ValueInput tag) { 38 38 //? if neoforge { 39 - return tag.keySet(); 40 - //?} else { 41 - /*return tag.keys(); 42 - *///?} 39 + /*return tag.keySet(); 40 + *///?} else { 41 + return tag.keys(); 42 + //?} 43 43 } 44 44 static boolean compoundHasString(ValueInput tag, String dimension) { 45 45 return tag.getString(dimension).isPresent();
+9 -8
src/main/java/net/lerariemann/infinity/util/platform/InfinityPlatform.java
··· 1 1 package net.lerariemann.infinity.util.platform; 2 2 3 3 //? fabric { 4 - /*import net.lerariemann.infinity.util.platform.fabric.FabricPlatformImpl; 5 - *///?} 6 - //? neoforge { 7 - import net.lerariemann.infinity.util.platform.neoforge.NeoForgePlatformImpl; 4 + import net.lerariemann.infinity.util.platform.fabric.FabricPlatformImpl; 8 5 //?} 6 + //? neoforge { 7 + /*import net.lerariemann.infinity.util.platform.neoforge.NeoForgePlatformImpl; 8 + *///?} 9 9 import dev.architectury.registry.registries.RegistrySupplier; 10 10 import net.lerariemann.infinity.registry.var.ModPayloads; 11 11 import net.minecraft.nbt.CompoundTag; ··· 15 15 import net.minecraft.world.item.ItemStack; 16 16 import net.minecraft.world.item.enchantment.ItemEnchantments; 17 17 //?} 18 + import net.minecraft.nbt.CompoundTag; 18 19 import net.minecraft.resources.ResourceKey; 19 20 import net.minecraft.server.level.ServerLevel; 20 21 import net.minecraft.server.level.ServerPlayer; ··· 75 76 } 76 77 77 78 //? fabric { 78 - /*InfinityPlatform INSTANCE = new FabricPlatformImpl(); 79 - *///?} 79 + InfinityPlatform INSTANCE = new FabricPlatformImpl(); 80 + //?} 80 81 //? neoforge { 81 - InfinityPlatform INSTANCE = new NeoForgePlatformImpl(); 82 - //?} 82 + /*InfinityPlatform INSTANCE = new NeoForgePlatformImpl(); 83 + *///?} 83 84 //? forge { 84 85 /*InfinityPlatform INSTANCE = new ForgePlatformImpl(); 85 86 *///?}
+12 -12
src/main/java/net/lerariemann/infinity/util/platform/fabric/FabricClientEntrypoint.java
··· 1 1 package net.lerariemann.infinity.util.platform.fabric; 2 2 3 3 //? fabric { 4 - /*//? if >1.21.2 { 4 + //? if >1.21.2 { 5 5 import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; 6 6 import net.lerariemann.infinity.item.tint.InfinityTintSource; 7 7 import net.minecraft.client.color.item.ItemTintSources; 8 8 import net.minecraft.client.renderer.chunk.ChunkSectionLayer; 9 9 //?} else { 10 - /^import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; 10 + /*import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; 11 11 import net.lerariemann.infinity.util.platform.InfinityPlatform; 12 12 import net.minecraft.client.renderer.RenderType; 13 - ^///?} 13 + *///?} 14 14 import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry; 15 15 import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; 16 16 import net.fabricmc.fabric.api.transfer.v1.client.fluid.FluidVariantRendering; ··· 36 36 ModBlocks.CHROMATIC_WOOL.get(), 37 37 ModBlocks.CHROMATIC_CARPET.get()); 38 38 //? if <1.21.4 { 39 - /^ColorProviderRegistry.ITEM.register(InfinityMethods::getOverlayColorFromComponents, 39 + /*ColorProviderRegistry.ITEM.register(InfinityMethods::getOverlayColorFromComponents, 40 40 ModItems.TRANSFINITE_KEY.get(), 41 41 ModItems.BIOME_BOTTLE_ITEM.get(), 42 42 ModItems.F4.get()); ··· 47 47 ModItems.PORTAL_ITEM.get()); 48 48 ColorProviderRegistry.ITEM.register(InfinityMethods::getDiscColorFromComponents, 49 49 ModItems.DISC.get()); 50 - ^///?} else { 50 + *///?} else { 51 51 ItemTintSources.ID_MAPPER.put(InfinityMethods.getId("color"), InfinityTintSource.MAP_CODEC); 52 52 //?} 53 53 ··· 55 55 //? if >1.21.2 { 56 56 BlockRenderLayerMap.putBlocks(ChunkSectionLayer.CUTOUT_MIPPED, 57 57 //?} else { 58 - /^BlockRenderLayerMap.INSTANCE.putBlocks(RenderType.cutoutMipped(), 59 - ^///?} 58 + /*BlockRenderLayerMap.INSTANCE.putBlocks(RenderType.cutoutMipped(), 59 + *///?} 60 60 ModBlocks.BOOK_BOX.get(), 61 61 ModBlocks.IRIDESCENT_KELP.get(), 62 62 ModBlocks.IRIDESCENT_KELP_PLANT.get()); 63 63 //? if >1.21.2 { 64 64 BlockRenderLayerMap.putBlocks(ChunkSectionLayer.TRANSLUCENT, 65 65 //?} else { 66 - /^BlockRenderLayerMap.INSTANCE.putBlocks(RenderType.translucent(), 67 - ^///?} 66 + /*BlockRenderLayerMap.INSTANCE.putBlocks(RenderType.translucent(), 67 + *///?} 68 68 ModBlocks.TIME_BOMB.get(), 69 69 ModBlocks.BIOME_BOTTLE.get(), 70 70 ModBlocks.CHROMATIC_WOOL.get(), ··· 72 72 //? if >1.21.2 { 73 73 BlockRenderLayerMap.putFluids(ChunkSectionLayer.TRANSLUCENT, 74 74 //?} else { 75 - /^BlockRenderLayerMap.INSTANCE.putFluids(RenderType.translucent(), 76 - ^///?} 75 + /*BlockRenderLayerMap.INSTANCE.putFluids(RenderType.translucent(), 76 + *///?} 77 77 InfinityPlatform.INSTANCE.getIridescenceStill().get(), 78 78 InfinityPlatform.INSTANCE.getIridescenceFlowing().get()); 79 79 ··· 90 90 FluidRenderHandlerRegistry.INSTANCE.register(InfinityPlatform.INSTANCE.getIridescenceFlowing().get(), new ModFluidsFabric.IridescenceRenderHandler()); 91 91 } 92 92 } 93 - *///?} 93 + //?}
+2 -2
src/main/java/net/lerariemann/infinity/util/platform/fabric/FabricEntrypoint.java
··· 2 2 3 3 //? fabric { 4 4 5 - /*import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; 5 + import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; 6 6 import net.fabricmc.fabric.api.resource.ResourceManagerHelper; 7 7 import net.fabricmc.fabric.api.resource.ResourcePackActivationType; 8 8 import net.fabricmc.loader.api.FabricLoader; ··· 45 45 ResourcePackActivationType.ALWAYS_ENABLED); 46 46 } 47 47 } 48 - *///?} 48 + //?}
+27 -28
src/main/java/net/lerariemann/infinity/util/platform/fabric/FabricPlatformImpl.java
··· 1 1 package net.lerariemann.infinity.util.platform.fabric; 2 2 3 3 //? fabric { 4 - /*import dev.architectury.registry.registries.RegistrySupplier; 4 + import dev.architectury.registry.registries.RegistrySupplier; 5 5 import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; 6 6 //? if >1.21 { 7 7 import net.fabricmc.fabric.api.event.lifecycle.v1.ServerWorldEvents; ··· 10 10 import net.minecraft.world.item.enchantment.ItemEnchantments; 11 11 //?} 12 12 //? if <1.21 { 13 - /^import net.fabricmc.fabric.api.event.lifecycle.v1.ServerWorldEvents; 14 - ^///?} 13 + /*import net.fabricmc.fabric.api.event.lifecycle.v1.ServerWorldEvents; 14 + *///?} 15 15 import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; 16 16 import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; 17 17 import net.fabricmc.fabric.api.registry.FlammableBlockRegistry; ··· 86 86 87 87 } 88 88 89 - /^* 89 + /** 90 90 * On NeoForge, this allows the world to be ticked. 91 91 * On Fabric, this invokes a server world event in Fabric API. 92 - ^/ 92 + */ 93 93 public void onWorldLoad(Object mixin, ServerLevel world) { 94 94 ServerWorldEvents.LOAD.invoker().onWorldLoad((MinecraftServer) mixin, world); 95 95 } 96 96 97 - /^* 97 + /** 98 98 * Check if a block is in the Black Dyed Conventional Tag. 99 - ^/ 99 + */ 100 100 public boolean isInBlack(BlockState state) { 101 101 //? if <1.21 { 102 - /^return BuiltInRegistries.BLOCK.getKey(state.getBlock()).getPath().contains("black_"); 103 - ^///?} else { 102 + /*return BuiltInRegistries.BLOCK.getKey(state.getBlock()).getPath().contains("black_"); 103 + *///?} else { 104 104 return state.is(ConventionalBlockTags.BLACK_DYED); 105 105 //?} 106 106 } 107 107 108 - /^* 108 + /** 109 109 * Check if a block is in the White Dyed Conventional Tag. 110 - ^/ 110 + */ 111 111 public boolean isInWhite(BlockState state) { 112 112 //? if <1.21 { 113 - /^return BuiltInRegistries.BLOCK.getKey(state.getBlock()).getPath().contains("white_"); 114 - ^///?} else { 113 + /*return BuiltInRegistries.BLOCK.getKey(state.getBlock()).getPath().contains("white_"); 114 + *///?} else { 115 115 return state.is(ConventionalBlockTags.WHITE_DYED); 116 116 //?} 117 117 } 118 118 119 - /^* 119 + /** 120 120 * Get the still variant of Iridescence fluid. 121 - ^/ 121 + */ 122 122 public RegistrySupplier<? extends FlowingFluid> getIridescenceStill() { 123 123 return ModFluidsFabric.IRIDESCENCE_STILL; 124 124 } 125 - /^* 125 + /** 126 126 * Get the flowing variant of Iridescence fluid. 127 - ^/ 127 + */ 128 128 public RegistrySupplier<? extends FlowingFluid> getIridescenceFlowing() { 129 129 return ModFluidsFabric.IRIDESCENCE_FLOWING; 130 130 } 131 131 132 - /^* 132 + /** 133 133 * Get the registry supplier for Iridescence fluid. 134 - ^/ 134 + */ 135 135 public RegistrySupplier<LiquidBlock> getIridBlockForReg() { 136 136 var properties = VersionMethods.copyBlockProperties(Blocks.WATER).mapColor(MapColor.COLOR_MAGENTA) 137 137 //? if >1.21.2 ··· 142 142 properties)); 143 143 } 144 144 145 - /^* 145 + /** 146 146 * Read from the config path inside the mod JAR. 147 - ^/ 147 + */ 148 148 @SuppressWarnings("for removal") 149 149 public Path getRootPathInJar(String path) { 150 150 ModContainer mc = FabricLoader.getInstance().getModContainer(InfinityMod.MOD_ID).orElse(null); ··· 152 152 return mc.getRootPaths().getFirst().resolve(path); 153 153 } 154 154 155 - /^* 155 + /** 156 156 * Create an Item Tag. 157 - ^/ 157 + */ 158 158 public TagKey<Item> createItemTag(String id) { 159 159 return TagKey.create(Registries.ITEM, InfinityMethods.getId(id)); 160 160 } ··· 162 162 return TagKey.create(Registries.BLOCK, InfinityMethods.getId(id)); 163 163 } 164 164 165 - /^* 165 + /** 166 166 * Register a Flammable nameToElement (how does Architectury API not have a helper for this) 167 - ^/ 167 + */ 168 168 public void registerFlammableBlock(RegistrySupplier<Block> block, int burn, int spread) { 169 169 FlammableBlockRegistry.getDefaultInstance().add(block.get(), burn, spread); 170 170 } 171 171 172 - /^* 172 + /** 173 173 * Neoforge-exclusive method of testing if a mob is located in iridescence as far as fluid types are concerned. 174 174 * Used only in mixins, to fix the neoforge loader stripping mobs of ability to swim in non-water fluids. 175 175 * On Fabric, returns false. 176 - ^/ 176 + */ 177 177 public boolean acidTest(Entity entity, boolean eyes) { 178 178 return false; 179 179 } ··· 203 203 return FabricLoader.getInstance().getGameDir(); 204 204 } 205 205 } 206 - */
+6 -6
src/main/java/net/lerariemann/infinity/util/platform/fabric/ModFluidsFabric.java
··· 1 1 package net.lerariemann.infinity.util.platform.fabric; 2 2 3 3 //? fabric { 4 - /*import dev.architectury.registry.registries.DeferredRegister; 4 + import dev.architectury.registry.registries.DeferredRegister; 5 5 import dev.architectury.registry.registries.RegistrySupplier; 6 6 import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler; 7 7 import net.fabricmc.fabric.api.transfer.v1.client.fluid.FluidVariantRenderHandler; ··· 74 74 //? if >1.21.2 { 75 75 ServerLevel 76 76 //?} else { 77 - /^Level 78 - ^///?} 77 + /*Level 78 + *///?} 79 79 world) { 80 80 return Iridescence.isInfinite(world); 81 81 } ··· 170 170 @Override 171 171 public TextureAtlasSprite[] getFluidSprites(@Nullable BlockAndTintGetter view, @Nullable BlockPos pos, FluidState state) { 172 172 //? if >1.21.8 { 173 - /^TextureAtlas atlas = Minecraft.getInstance().getAtlasManager().getAtlasOrThrow(TextureAtlas.LOCATION_BLOCKS); 173 + /*TextureAtlas atlas = Minecraft.getInstance().getAtlasManager().getAtlasOrThrow(TextureAtlas.LOCATION_BLOCKS); 174 174 TextureAtlasSprite overlaySprite = atlas.getSprite(Iridescence.OVERLAY_TEXTURE); 175 175 TextureAtlasSprite[] sprites = new TextureAtlasSprite[3]; 176 176 sprites[0] = atlas.getSprite(Iridescence.TEXTURE); 177 177 sprites[1] = atlas.getSprite(Iridescence.FLOWING_TEXTURE); 178 178 sprites[2] = overlaySprite; 179 - ^///?} else { 179 + *///?} else { 180 180 Function<ResourceLocation, TextureAtlasSprite> atlas = Minecraft.getInstance().getTextureAtlas(TextureAtlas.LOCATION_BLOCKS); 181 181 TextureAtlasSprite overlaySprite = atlas.apply(Iridescence.OVERLAY_TEXTURE); 182 182 TextureAtlasSprite[] sprites = new TextureAtlasSprite[overlaySprite == null ? 2 : 3]; ··· 193 193 } 194 194 } 195 195 } 196 - *///?} 196 + //?}
+2 -2
src/main/java/net/lerariemann/infinity/util/platform/fabric/ModPayloadsFabric.java
··· 1 1 package net.lerariemann.infinity.util.platform.fabric; 2 2 3 3 //? if >1.21 && fabric { 4 - /*import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; 4 + import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; 5 5 import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; 6 6 import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; 7 7 import net.lerariemann.infinity.registry.var.ModPayloads; ··· 48 48 SoundScanner.unpackDownloadedPack(payload.songIds(), client(context))); 49 49 } 50 50 } 51 - *///?} 51 + //?}
+2 -2
src/main/java/net/lerariemann/infinity/util/platform/fabric/compat/ModConfigFactory.java
··· 1 1 package net.lerariemann.infinity.util.platform.fabric.compat; 2 2 3 3 //? fabric { 4 - /*import com.terraformersmc.modmenu.api.ConfigScreenFactory; 4 + import com.terraformersmc.modmenu.api.ConfigScreenFactory; 5 5 import net.lerariemann.infinity.compat.cloth.ClothConfigFactory; 6 6 import net.minecraft.client.gui.screens.Screen; 7 7 ··· 11 11 return ClothConfigFactory.create(parent); 12 12 } 13 13 } 14 - *///?} 14 + //?}
+2 -2
src/main/java/net/lerariemann/infinity/util/platform/fabric/compat/ModMenuCompat.java
··· 1 1 package net.lerariemann.infinity.util.platform.fabric.compat; 2 2 3 3 //? fabric { 4 - /*import com.terraformersmc.modmenu.api.ConfigScreenFactory; 4 + import com.terraformersmc.modmenu.api.ConfigScreenFactory; 5 5 import com.terraformersmc.modmenu.api.ModMenuApi; 6 6 import net.lerariemann.infinity.compat.ModCompat; 7 7 import net.lerariemann.infinity.util.platform.InfinityPlatform; ··· 16 16 } 17 17 } 18 18 } 19 - *///?} 19 + //?}
+2 -2
src/main/java/net/lerariemann/infinity/util/platform/neoforge/FluidTypes.java
··· 1 1 package net.lerariemann.infinity.util.platform.neoforge; 2 2 3 3 //? neoforge { 4 - import net.lerariemann.infinity.InfinityMod; 4 + /*import net.lerariemann.infinity.InfinityMod; 5 5 import net.lerariemann.infinity.iridescence.Iridescence; 6 6 import net.minecraft.core.BlockPos; 7 7 import net.minecraft.sounds.SoundEvents; ··· 85 85 } 86 86 } 87 87 } 88 - //?} 88 + *///?}
+6 -6
src/main/java/net/lerariemann/infinity/util/platform/neoforge/InfinityModNeoForgeClient.java
··· 1 1 package net.lerariemann.infinity.util.platform.neoforge; 2 2 3 3 //? neoforge { 4 - import net.lerariemann.infinity.InfinityMod; 4 + /*import net.lerariemann.infinity.InfinityMod; 5 5 import net.lerariemann.infinity.InfinityModClient; 6 6 import net.lerariemann.infinity.compat.ModCompat; 7 7 import net.lerariemann.infinity.registry.var.ModPayloads; ··· 72 72 event.register(InfinityMethods::getBookBoxColor, ModBlocks.BOOK_BOX.get()); 73 73 } 74 74 //? if <1.21.4 { 75 - /*@SubscribeEvent 75 + /^@SubscribeEvent 76 76 public static void registerItemColorHandlers(RegisterColorHandlersEvent.Item event) { 77 77 event.register(InfinityMethods::getOverlayColorFromComponents, 78 78 ModItems.TRANSFINITE_KEY.get(), ··· 86 86 event.register(InfinityMethods::getDiscColorFromComponents, 87 87 ModItems.DISC.get()); 88 88 } 89 - *///?} else { 89 + ^///?} else { 90 90 @SubscribeEvent 91 91 public static void registerItemColorHandlers(RegisterColorHandlersEvent.ItemTintSources event) { 92 92 event.register(InfinityMethods.getId("color"), InfinityTintSource.MAP_CODEC); ··· 107 107 ItemBlockRenderTypes.setRenderLayer(InfinityPlatform.INSTANCE.getIridescenceStill().get(), ChunkSectionLayer.TRANSLUCENT); 108 108 ItemBlockRenderTypes.setRenderLayer(InfinityPlatform.INSTANCE.getIridescenceFlowing().get(), ChunkSectionLayer.TRANSLUCENT); 109 109 //?} else { 110 - /*ItemBlockRenderTypes.setRenderLayer(InfinityPlatform.INSTANCE.getIridescenceStill().get(), RenderType.translucent()); 110 + /^ItemBlockRenderTypes.setRenderLayer(InfinityPlatform.INSTANCE.getIridescenceStill().get(), RenderType.translucent()); 111 111 ItemBlockRenderTypes.setRenderLayer(InfinityPlatform.INSTANCE.getIridescenceFlowing().get(), RenderType.translucent()); 112 - *///?} 112 + ^///?} 113 113 } 114 114 115 115 @SubscribeEvent ··· 140 140 }, FluidTypes.IRIDESCENCE_TYPE.value()); 141 141 } 142 142 } 143 - //?} 143 + *///?}
+6 -6
src/main/java/net/lerariemann/infinity/util/platform/neoforge/InfinityModNeoforge.java
··· 1 1 package net.lerariemann.infinity.util.platform.neoforge; 2 2 3 3 //? neoforge { 4 - import net.lerariemann.infinity.InfinityMod; 4 + /*import net.lerariemann.infinity.InfinityMod; 5 5 //? if >1.21.4 { 6 6 import net.lerariemann.infinity.compat.ModCompat; 7 7 import net.lerariemann.infinity.compat.rrv.RrvIntegration; ··· 45 45 ModFluidsNeoforge.registerModFluids(); 46 46 ModEffectsNeoforge.register(eventBus); 47 47 //? if <1.21.2 { 48 - /*if (InfinityPlatform.INSTANCE.isModLoaded("create")) 48 + /^if (InfinityPlatform.INSTANCE.isModLoaded("create")) 49 49 net.lerariemann.infinity.compat.CreateCompat.register(); 50 - *///?} 50 + ^///?} 51 51 } 52 52 53 53 @SubscribeEvent ··· 94 94 public static MinecraftServer getServerFromPlayer(IPayloadContext context) { 95 95 ServerPlayer player = getPlayer(context); 96 96 //? if >1.21.9 { 97 - /*return player.level().getServer(); 98 - *///?} else { 97 + /^return player.level().getServer(); 98 + ^///?} else { 99 99 return player.getServer(); 100 100 //?} 101 101 } ··· 145 145 ); 146 146 } 147 147 } 148 - //?} 148 + *///?}
+2 -2
src/main/java/net/lerariemann/infinity/util/platform/neoforge/IridescenceLiquidBlockNeoforge.java
··· 1 1 package net.lerariemann.infinity.util.platform.neoforge; 2 2 3 3 //? neoforge { 4 - import net.lerariemann.infinity.iridescence.IridescenceLiquidBlock; 4 + /*import net.lerariemann.infinity.iridescence.IridescenceLiquidBlock; 5 5 import net.minecraft.core.BlockPos; 6 6 import net.minecraft.world.entity.Mob; 7 7 import net.minecraft.world.level.BlockGetter; ··· 24 24 return PathType.WATER; 25 25 } 26 26 } 27 - //?} 27 + *///?}
+2 -2
src/main/java/net/lerariemann/infinity/util/platform/neoforge/ModConfigFactory.java
··· 1 1 package net.lerariemann.infinity.util.platform.neoforge; 2 2 3 3 //? neoforge { 4 - import net.lerariemann.infinity.compat.cloth.ClothConfigFactory; 4 + /*import net.lerariemann.infinity.compat.cloth.ClothConfigFactory; 5 5 import net.minecraft.client.gui.screens.Screen; 6 6 import net.neoforged.fml.ModContainer; 7 7 import net.neoforged.neoforge.client.gui.IConfigScreenFactory; ··· 14 14 return ClothConfigFactory.create(parent); 15 15 } 16 16 } 17 - //?} 17 + *///?}
+2 -2
src/main/java/net/lerariemann/infinity/util/platform/neoforge/ModEffectsNeoforge.java
··· 1 1 package net.lerariemann.infinity.util.platform.neoforge; 2 2 3 3 //? neoforge { 4 - import net.lerariemann.infinity.InfinityMod; 4 + /*import net.lerariemann.infinity.InfinityMod; 5 5 import net.lerariemann.infinity.iridescence.IridescentCooldownEffect; 6 6 import net.lerariemann.infinity.iridescence.IridescentEffect; 7 7 import net.lerariemann.infinity.registry.core.ModStatusEffects; ··· 26 26 EFFECTS.register(eventBus); 27 27 } 28 28 } 29 - //?} 29 + *///?}
+2 -2
src/main/java/net/lerariemann/infinity/util/platform/neoforge/ModFluidsNeoforge.java
··· 1 1 package net.lerariemann.infinity.util.platform.neoforge; 2 2 3 3 //? neoforge { 4 - import dev.architectury.registry.registries.DeferredRegister; 4 + /*import dev.architectury.registry.registries.DeferredRegister; 5 5 import dev.architectury.registry.registries.RegistrySupplier; 6 6 import net.lerariemann.infinity.registry.core.ModBlocks; 7 7 import net.lerariemann.infinity.registry.core.ModItems; ··· 30 30 FLUIDS.register(); 31 31 } 32 32 } 33 - //?} 33 + *///?}
+30 -30
src/main/java/net/lerariemann/infinity/util/platform/neoforge/NeoForgePlatformImpl.java
··· 1 1 package net.lerariemann.infinity.util.platform.neoforge; 2 2 3 3 //? neoforge { 4 - import dev.architectury.registry.registries.RegistrySupplier; 4 + /*import dev.architectury.registry.registries.RegistrySupplier; 5 5 import net.lerariemann.infinity.registry.core.ModBlocks; 6 6 import net.lerariemann.infinity.registry.core.ModItems; 7 7 import net.lerariemann.infinity.registry.var.ModPayloads; ··· 64 64 @Override 65 65 public boolean isDevelopment() { 66 66 //? if >1.21.9 { 67 - /*return !FMLEnvironment.isProduction(); 68 - *///?} else { 67 + /^return !FMLEnvironment.isProduction(); 68 + ^///?} else { 69 69 return !FMLEnvironment.production; 70 70 //?} 71 71 ··· 83 83 @Override 84 84 public void sendC2SPayload(ModPayloads.FriendlyPacket payload) { 85 85 //? <1.21.2 { 86 - /*PacketDistributor.sendToServer(payload); 87 - *///?} else { 86 + /^PacketDistributor.sendToServer(payload); 87 + ^///?} else { 88 88 ClientPacketDistributor.sendToServer(payload); 89 89 //?} 90 90 } 91 91 92 - /** 92 + /^* 93 93 * On NeoForge, this allows the world to be ticked. 94 94 * On Fabric, this invokes a server world event in Fabric API. 95 - */ 95 + ^/ 96 96 @Override 97 97 public void onWorldLoad(Object mixin, ServerLevel world) { 98 98 MinecraftServer server = world.getServer(); ··· 101 101 NeoForge.EVENT_BUS.post(new LevelEvent.Load(world)); 102 102 } 103 103 104 - /** 104 + /^* 105 105 * Check if a block is in the Black Dyed Conventional Tag. 106 - */ 106 + ^/ 107 107 @Override 108 108 public boolean isInBlack(BlockState state) { 109 109 return state.is(Tags.Blocks.DYED_BLACK); 110 110 } 111 111 112 - /** 112 + /^* 113 113 * Check if a block is in the White Dyed Conventional Tag. 114 - */ 114 + ^/ 115 115 @Override 116 116 public boolean isInWhite(BlockState state) { 117 117 return state.is(Tags.Blocks.DYED_WHITE); 118 118 } 119 119 120 - /** 120 + /^* 121 121 * Get the still variant of Iridescence fluid. 122 - */ 122 + ^/ 123 123 @Override 124 124 public RegistrySupplier<? extends FlowingFluid> getIridescenceStill() { 125 125 return ModFluidsNeoforge.IRIDESCENCE_STILL; 126 126 } 127 - /** 127 + /^* 128 128 * Get the flowing variant of Iridescence fluid. 129 - */ 129 + ^/ 130 130 @Override 131 131 public RegistrySupplier<? extends FlowingFluid> getIridescenceFlowing() { 132 132 return ModFluidsNeoforge.IRIDESCENCE_FLOWING; 133 133 } 134 134 135 - /** 135 + /^* 136 136 * Get the registry supplier for Iridescence fluid. 137 - */ 137 + ^/ 138 138 @Override 139 139 public RegistrySupplier<LiquidBlock> getIridBlockForReg() { 140 140 var properties = VersionMethods.copyBlockProperties(Blocks.WATER).mapColor(MapColor.COLOR_MAGENTA) ··· 145 145 new IridescenceLiquidBlockNeoforge(InfinityPlatform.INSTANCE.getIridescenceStill(), properties)); 146 146 } 147 147 148 - /** 148 + /^* 149 149 * Read from the config path inside the mod JAR. 150 - */ 150 + ^/ 151 151 @Override 152 152 @SuppressWarnings("for removal") 153 153 public Path getRootPathInJar(String path) { 154 154 var file = ModLoadingContext.get().getActiveContainer().getModInfo().getOwningFile().getFile(); 155 155 // FIXME 1.21.10 - this does not work in production. standard paths do not work on neoforge 1.21.10, will either need to drop neo or make this even more platform specific 156 156 //? if >1.21.9 { 157 - /*var contents = file.getContents(); 157 + /^var contents = file.getContents(); 158 158 Path returnPath = null; 159 159 for (Path contentRoot : contents.getContentRoots()) { 160 160 if (contentRoot.resolve(path).toFile().exists()) { ··· 162 162 } 163 163 } 164 164 return returnPath; 165 - *///?} else { 165 + ^///?} else { 166 166 return file.findResource(path); 167 167 //?} 168 168 } 169 169 170 - /** 170 + /^* 171 171 * Create an Item Tag. 172 - */ 172 + ^/ 173 173 @Override 174 174 public TagKey<Item> createItemTag(String id) { 175 175 return ItemTags.create(InfinityMethods.getId(id)); ··· 179 179 return BlockTags.create(InfinityMethods.getId(id)); 180 180 } 181 181 182 - /** 182 + /^* 183 183 * Register a Flammable nameToElement (how does Architectury API not have a helper for this) 184 - */ 184 + ^/ 185 185 @Override 186 186 public void registerFlammableBlock(RegistrySupplier<Block> block, int burn, int spread) { 187 187 FireBlock fireblock = (FireBlock)Blocks.FIRE; 188 188 fireblock.setFlammable(block.get(), burn, spread); 189 189 } 190 190 191 - /** 191 + /^* 192 192 * Neoforge-exclusive method of testing if a mob is located in iridescence as far as fluid types are concerned. 193 193 * Used only in mixins, to fix the neoforge loader stripping mobs of ability to swim in non-water fluids. 194 194 * On Fabric, returns false. 195 - */ 195 + ^/ 196 196 @Override 197 197 public boolean acidTest(Entity entity, boolean eyes) { 198 198 if (entity instanceof Player) return false; ··· 218 218 //? if >1.21.4 { 219 219 .lookupOrThrow(Registries.ENCHANTMENT)); 220 220 //?} else { 221 - /*.lookupOrThrow(Registries.ENCHANTMENT)); 222 - *///?} 221 + /^.lookupOrThrow(Registries.ENCHANTMENT)); 222 + ^///?} 223 223 } 224 224 225 225 @Override ··· 232 232 return FMLPaths.GAMEDIR.get(); 233 233 } 234 234 } 235 - //?} 235 + *///?}
+2 -2
src/main/java/net/lerariemann/infinity/util/screen/F4ScreenHandler.java
··· 27 27 import net.minecraft.core.component.DataComponentMap; 28 28 //?} 29 29 //? if neoforge { 30 - import javax.annotation.ParametersAreNonnullByDefault; 30 + /*import javax.annotation.ParametersAreNonnullByDefault; 31 31 32 32 @ParametersAreNonnullByDefault 33 - //?} 33 + *///?} 34 34 @MethodsReturnNonnullByDefault 35 35 public class F4ScreenHandler extends AbstractContainerMenu { 36 36 public final Inventory playerInventory;
+2 -2
src/main/java/net/lerariemann/infinity/util/teleport/PortalCreator.java
··· 286 286 .addModifier(npbe -> npbe.setOpen(open)) 287 287 .addModifier(BlockEntity::setChanged); 288 288 //? if <1.21.2 || fabric { 289 - /*if (ModCompat.CREATE) { 289 + if (ModCompat.CREATE) { 290 290 union.addModifier(CreateCompat::tryModifyRails); 291 291 } 292 - *///?} 292 + //?} 293 293 return union; 294 294 } 295 295
src/main/resources/data/c/tags/item/buckets.json versions/1.20.1-fabric/src/main/generated/data/c/tags/items/buckets.json
+7 -6
src/main/resources/data/infinity/loot_table/blocks/ant.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/ant.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:ant" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+8 -7
src/main/resources/data/infinity/loot_table/blocks/book_box.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/book_box.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:book_box" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 - } 20 + }
+7 -6
src/main/resources/data/infinity/loot_table/blocks/cosmic_altar.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/cosmic_altar.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:cosmic_altar" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+7 -6
src/main/resources/data/infinity/loot_table/blocks/cursor.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/cursor.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:cursor" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+7 -6
src/main/resources/data/infinity/loot_table/blocks/iridescent_carpet.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/iridescent_carpet.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:iridescent_carpet" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+1 -2
src/main/resources/data/infinity/loot_table/blocks/iridescent_kelp.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/iridescent_kelp.json
··· 16 16 ], 17 17 "rolls": 1.0 18 18 } 19 - ], 20 - "random_sequence": "minecraft:blocks/kelp" 19 + ] 21 20 }
+1 -2
src/main/resources/data/infinity/loot_table/blocks/iridescent_kelp_plant.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/iridescent_kelp_plant.json
··· 16 16 ], 17 17 "rolls": 1.0 18 18 } 19 - ], 20 - "random_sequence": "minecraft:blocks/kelp" 19 + ] 21 20 }
+7 -6
src/main/resources/data/infinity/loot_table/blocks/iridescent_wool.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/iridescent_wool.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:iridescent_wool" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+8 -7
src/main/resources/data/infinity/loot_table/blocks/netherite_slab.json versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/cursor.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 - "name": "infinity:netherite_slab" 14 + "name": "infinity:cursor" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+7 -6
src/main/resources/data/infinity/loot_table/blocks/netherite_stairs.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/netherite_stairs.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:netherite_stairs" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+1 -2
src/main/resources/data/infinity/loot_table/blocks/notes_block.json versions/1.21.8-fabric/src/main/generated/data/infinity/loot_table/blocks/notes_block.json
··· 16 16 ], 17 17 "rolls": 1.0 18 18 } 19 - ], 20 - "random_sequence": "minecraft:blocks/note_block" 19 + ] 21 20 }
+2 -2
src/main/resources/data/infinity/recipe/altar.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/altar.json
··· 12 12 "pattern": [ 13 13 "SSS", 14 14 " B ", 15 - " S " 15 + " B " 16 16 ], 17 17 "result": { 18 - "id": "infinity:altar" 18 + "item": "infinity:altar" 19 19 }, 20 20 "show_notification": true 21 21 }
+3 -2
src/main/resources/data/infinity/recipe/altar_from_portal.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/altar_from_portal.json
··· 3 3 "input": { 4 4 "item": "minecraft:lectern" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:altar" 8 - }, 9 - "lore": "empty" 10 + } 10 11 }
+4 -4
src/main/resources/data/infinity/recipe/ant.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/ant.json
··· 5 5 "B": { 6 6 "item": "minecraft:black_concrete" 7 7 }, 8 - "W": { 9 - "item": "minecraft:white_concrete" 10 - }, 11 8 "M": { 12 9 "item": "infinity:star_of_lang" 10 + }, 11 + "W": { 12 + "item": "minecraft:white_concrete" 13 13 } 14 14 }, 15 15 "pattern": [ ··· 18 18 "WBW" 19 19 ], 20 20 "result": { 21 - "id": "infinity:ant" 21 + "item": "infinity:ant" 22 22 }, 23 23 "show_notification": true 24 24 }
+3 -3
src/main/resources/data/infinity/recipe/ant1.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/ant1.json
··· 3 3 "category": "building", 4 4 "key": { 5 5 "B": { 6 - "item": "infinity:black_matter" 6 + "item": "minecraft:black_concrete" 7 7 }, 8 8 "W": { 9 - "item": "infinity:white_matter" 9 + "item": "minecraft:white_concrete" 10 10 } 11 11 }, 12 12 "pattern": [ ··· 15 15 "WBW" 16 16 ], 17 17 "result": { 18 - "id": "infinity:ant" 18 + "item": "infinity:ant" 19 19 }, 20 20 "show_notification": true 21 21 }
+3 -2
src/main/resources/data/infinity/recipe/biome_bottle_from_portal.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/biome_bottle_from_portal.json
··· 3 3 "input": { 4 4 "item": "minecraft:glass_bottle" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:biome_bottle" 8 - }, 9 - "lore": "empty" 10 + } 10 11 }
+2 -2
src/main/resources/data/infinity/recipe/black_matter.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/black_matter.json
··· 12 12 "BBB" 13 13 ], 14 14 "result": { 15 + "count": 1, 15 16 "id": "infinity:black_matter" 16 - }, 17 - "show_notification": true 17 + } 18 18 }
+3 -2
src/main/resources/data/infinity/recipe/book_box_from_portal.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/book_box_from_portal.json
··· 3 3 "input": { 4 4 "item": "minecraft:bookshelf" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:book_box" 8 - }, 9 - "lore": "empty" 10 + } 10 11 }
+3 -2
src/main/resources/data/infinity/recipe/chromatic_carpet.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/chromatic_carpet_from_portal.json
··· 3 3 "input": { 4 4 "tag": "minecraft:wool_carpets" 5 5 }, 6 + "lore": "recipe_info.portal.infinity.color", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:chromatic_carpet" 8 - }, 9 - "lore": "recipe_info.portal.infinity.color" 10 + } 10 11 }
+1
src/main/resources/data/infinity/recipe/chromatic_coloring_carpet.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/chromatic_coloring_carpet.json
··· 4 4 "tag": "minecraft:wool_carpets" 5 5 }, 6 6 "output": { 7 + "count": 1, 7 8 "id": "infinity:chromatic_carpet" 8 9 } 9 10 }
+1
src/main/resources/data/infinity/recipe/chromatic_coloring_wool.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/chromatic_coloring_wool.json
··· 4 4 "tag": "minecraft:wool" 5 5 }, 6 6 "output": { 7 + "count": 1, 7 8 "id": "infinity:chromatic_wool" 8 9 } 9 10 }
+3 -2
src/main/resources/data/infinity/recipe/chromatic_matter.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/chromatic_matter.json
··· 3 3 "input": { 4 4 "tag": "infinity:matter" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:chromatic_matter" 8 - }, 9 - "lore": "recipe_info.portal.infinity.color" 10 + } 10 11 }
+3 -2
src/main/resources/data/infinity/recipe/chromatic_matter_from_iridescence.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/chromatic_matter_from_iridescence.json
··· 3 3 "input": { 4 4 "item": "infinity:chromatic_matter" 5 5 }, 6 + "lore": "recipe_info.iridescence.infinity.chromatic_matter", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:chromatic_matter" 8 - }, 9 - "lore": "recipe_info.iridescence.infinity.chromatic_matter" 10 + } 10 11 }
+3 -2
src/main/resources/data/infinity/recipe/chromatic_wool.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/chromatic_wool.json
··· 3 3 "input": { 4 4 "tag": "minecraft:wool" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:chromatic_wool" 8 - }, 9 - "lore": "recipe_info.portal.infinity.color" 10 + } 10 11 }
+4 -5
src/main/resources/data/infinity/recipe/cosmic_altar.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/cosmic_altar.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "misc", 4 4 "key": { 5 - "L": { 6 - "item": "minecraft:lodestone" 7 - }, 8 5 "A": { 9 6 "item": "infinity:altar" 7 + }, 8 + "L": { 9 + "item": "minecraft:lodestone" 10 10 }, 11 11 "S": { 12 12 "item": "infinity:iridescent_star" ··· 20 20 "result": { 21 21 "count": 1, 22 22 "id": "infinity:cosmic_altar" 23 - }, 24 - "show_notification": true 23 + } 25 24 }
+4 -4
src/main/resources/data/infinity/recipe/cursor.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/cursor.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "building", 4 4 "key": { 5 - "L": { 6 - "item": "minecraft:lime_concrete" 7 - }, 8 5 "B": { 9 6 "item": "minecraft:black_concrete" 7 + }, 8 + "L": { 9 + "item": "minecraft:lime_concrete" 10 10 }, 11 11 "S": { 12 12 "item": "infinity:star_of_lang" ··· 19 19 ], 20 20 "result": { 21 21 "count": 8, 22 - "id": "infinity:cursor" 22 + "item": "infinity:cursor" 23 23 }, 24 24 "show_notification": true 25 25 }
+1 -2
src/main/resources/data/infinity/recipe/f4.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/f4.json
··· 17 17 "result": { 18 18 "count": 1, 19 19 "id": "infinity:f4" 20 - }, 21 - "show_notification": true 20 + } 22 21 }
+3 -2
src/main/resources/data/infinity/recipe/f4_from_portal.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/f4_from_portal.json
··· 3 3 "input": { 4 4 "item": "infinity:f4" 5 5 }, 6 + "lore": "recipe_info.portal.infinity.attuned", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:f4" 8 - }, 9 - "lore": "recipe_info.portal.infinity.attuned" 10 + } 10 11 }
+1 -1
src/main/resources/data/infinity/recipe/fine_item.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/fine_item.json
··· 15 15 "GGG" 16 16 ], 17 17 "result": { 18 - "id": "infinity:fine_item" 18 + "item": "infinity:fine_item" 19 19 }, 20 20 "show_notification": true 21 21 }
+1 -1
src/main/resources/data/infinity/recipe/footprint.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/footprint.json
··· 13 13 ], 14 14 "result": { 15 15 "count": 8, 16 - "id": "infinity:footprint" 16 + "item": "infinity:footprint" 17 17 }, 18 18 "show_notification": true 19 19 }
+3 -2
src/main/resources/data/infinity/recipe/iridescence_bottle_from_portal.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/iridescence_bottle_from_portal.json
··· 3 3 "input": { 4 4 "item": "infinity:chromatic_potion" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:iridescent_potion" 8 - }, 9 - "lore": "empty" 10 + } 10 11 }
+3 -2
src/main/resources/data/infinity/recipe/iridescent_carpet.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/iridescent_carpet.json
··· 3 3 "input": { 4 4 "item": "infinity:chromatic_carpet" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:iridescent_carpet" 8 - }, 9 - "lore": "empty" 10 + } 10 11 }
+2 -2
src/main/resources/data/infinity/recipe/iridescent_carpet_from_wool.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/iridescent_carpet_from_wool.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "building", 4 4 "key": { 5 - "#": { 5 + "B": { 6 6 "item": "infinity:iridescent_wool" 7 7 } 8 8 }, 9 9 "pattern": [ 10 - "## " 10 + "BB" 11 11 ], 12 12 "result": { 13 13 "count": 3,
+3 -2
src/main/resources/data/infinity/recipe/iridescent_star.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/iridescent_star.json
··· 3 3 "input": { 4 4 "item": "infinity:star_of_lang" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:iridescent_star" 8 - }, 9 - "lore": "empty" 10 + } 10 11 }
+3 -2
src/main/resources/data/infinity/recipe/iridescent_wool.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/iridescent_wool.json
··· 3 3 "input": { 4 4 "item": "infinity:chromatic_wool" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:iridescent_wool" 8 - }, 9 - "lore": "empty" 10 + } 10 11 }
+3 -2
src/main/resources/data/infinity/recipe/key_from_iridescence.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/key_from_iridescence.json
··· 3 3 "input": { 4 4 "item": "infinity:key" 5 5 }, 6 + "lore": "recipe_info.iridescence.infinity.key", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:key" 8 - }, 9 - "lore": "recipe_info.iridescence.infinity.key" 10 + } 10 11 }
+3 -2
src/main/resources/data/infinity/recipe/key_from_portal.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/key_from_portal.json
··· 3 3 "input": { 4 4 "item": "minecraft:amethyst_shard" 5 5 }, 6 + "lore": "recipe_info.portal.infinity.attuned", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:key" 8 - }, 9 - "lore": "recipe_info.portal.infinity.attuned" 10 + } 10 11 }
src/main/resources/data/infinity/recipe/netherite_slab.json versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/netherite_slab.json
-9
src/main/resources/data/infinity/recipe/netherite_slab_from_stonecutting.json
··· 1 - { 2 - "type": "minecraft:stonecutting", 3 - "ingredient": { 4 - "item": "minecraft:netherite_block" 5 - }, 6 - "result": { 7 - "count": 2, 8 - "id": "infinity:netherite_slab" 9 - }}
src/main/resources/data/infinity/recipe/netherite_stairs.json versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/netherite_stairs.json
-10
src/main/resources/data/infinity/recipe/netherite_stairs_from_stonecutting.json
··· 1 - { 2 - "type": "minecraft:stonecutting", 3 - "ingredient": { 4 - "item": "minecraft:netherite_block" 5 - }, 6 - "result": { 7 - "count": 1, 8 - "id": "infinity:netherite_stairs" 9 - } 10 - }
+3 -2
src/main/resources/data/infinity/recipe/notes_block_from_portal.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/notes_block_from_portal.json
··· 3 3 "input": { 4 4 "item": "minecraft:note_block" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:notes_block" 8 - }, 9 - "lore": "empty" 10 + } 10 11 }
+3 -2
src/main/resources/data/infinity/recipe/timebomb_from_portal.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/timebomb_from_portal.json
··· 3 3 "input": { 4 4 "item": "minecraft:tnt" 5 5 }, 6 + "lore": "empty", 6 7 "output": { 8 + "count": 1, 7 9 "id": "infinity:timebomb" 8 - }, 9 - "lore": "empty" 10 + } 10 11 }
+2 -2
src/main/resources/data/infinity/recipe/white_matter.json versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/white_matter.json
··· 12 12 "BBB" 13 13 ], 14 14 "result": { 15 + "count": 1, 15 16 "id": "infinity:white_matter" 16 - }, 17 - "show_notification": true 17 + } 18 18 }
src/main/resources/data/infinity/tags/block/iridescent.json versions/1.21.8-neoforge/src/main/generated/data/infinity/tags/block/iridescent.json
+3 -3
src/main/resources/data/infinity/tags/item/iridescent.json versions/1.21.8-fabric/src/main/generated/data/infinity/tags/item/iridescent.json
··· 2 2 "values": [ 3 3 "infinity:iridescent_wool", 4 4 "infinity:iridescent_carpet", 5 - "infinity:iridescent_star", 6 5 "infinity:iridescence_bucket", 7 - "infinity:cosmic_altar", 6 + "infinity:iridescent_star", 7 + "infinity:iridescent_potion", 8 8 "infinity:chromatic_potion", 9 - "infinity:iridescent_potion" 9 + "infinity:cosmic_altar" 10 10 ] 11 11 }
-7
src/main/resources/data/infinity/tags/item/matter.json
··· 1 - { 2 - "values": [ 3 - "infinity:white_matter", 4 - "infinity:black_matter", 5 - "infinity:chromatic_matter" 6 - ] 7 - }
src/main/resources/data/minecraft/tags/block/mineable/axe.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/blocks/mineable/axe.json
src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json
src/main/resources/data/minecraft/tags/block/portals.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/blocks/portals.json
src/main/resources/data/minecraft/tags/block/slabs.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/blocks/slabs.json
src/main/resources/data/minecraft/tags/block/stairs.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/blocks/stairs.json
src/main/resources/data/minecraft/tags/block/wool.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/blocks/wool.json
src/main/resources/data/minecraft/tags/block/wool_carpets.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/blocks/wool_carpets.json
-1
src/main/resources/data/minecraft/tags/entity_type/arthropod.json versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/entity_type/arthropod.json
··· 1 1 { 2 - "replace": false, 3 2 "values": [ 4 3 "infinity:ant" 5 4 ]
src/main/resources/data/minecraft/tags/entity_type/frog_food.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/entity_types/frog_food.json
src/main/resources/data/minecraft/tags/entity_type/skeletons.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/entity_types/skeletons.json
+1 -2
src/main/resources/data/minecraft/tags/fluid/water.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/fluids/water.json
··· 1 1 { 2 2 "replace": false, 3 - "values": 4 - [ 3 + "values": [ 5 4 "infinity:flowing_iridescence", 6 5 "infinity:iridescence" 7 6 ]
src/main/resources/data/minecraft/tags/item/wool.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/items/wool.json
src/main/resources/data/minecraft/tags/item/wool_carpets.json versions/1.20.1-fabric/src/main/generated/data/minecraft/tags/items/wool_carpets.json
+3
src/main/resources/fabric.mod.json
··· 29 29 ], 30 30 "rrv": [ 31 31 "net.lerariemann.infinity.compat.rrv.RrvIntegration" 32 + ], 33 + "fabric-datagen": [ 34 + "net.lerariemann.infinity.data.InfinityDataGenerator" 32 35 ] 33 36 }, 34 37 "mixins": [
+7 -6
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/ant.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/ant.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:ant" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+8 -7
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/book_box.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/book_box.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:book_box" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 - } 20 + }
+7 -6
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/cosmic_altar.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/cosmic_altar.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:cosmic_altar" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+7 -6
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/cursor.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/cursor.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:cursor" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+7 -6
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/iridescent_carpet.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/iridescent_carpet.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:iridescent_carpet" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+1 -2
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/iridescent_kelp.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/iridescent_kelp.json
··· 16 16 ], 17 17 "rolls": 1.0 18 18 } 19 - ], 20 - "random_sequence": "minecraft:blocks/kelp" 19 + ] 21 20 }
+1 -2
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/iridescent_kelp_plant.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/iridescent_kelp_plant.json
··· 16 16 ], 17 17 "rolls": 1.0 18 18 } 19 - ], 20 - "random_sequence": "minecraft:blocks/kelp" 19 + ] 21 20 }
+7 -6
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/iridescent_wool.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/iridescent_wool.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:iridescent_wool" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+8 -7
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/netherite_slab.json versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/cursor.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 - "name": "infinity:netherite_slab" 14 + "name": "infinity:cursor" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+7 -6
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/netherite_stairs.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/netherite_stairs.json
··· 2 2 "type": "minecraft:block", 3 3 "pools": [ 4 4 { 5 - "rolls": 1, 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 6 11 "entries": [ 7 12 { 8 13 "type": "minecraft:item", 9 14 "name": "infinity:netherite_stairs" 10 15 } 11 16 ], 12 - "conditions": [ 13 - { 14 - "condition": "minecraft:survives_explosion" 15 - } 16 - ] 17 + "rolls": 1.0 17 18 } 18 19 ] 19 20 }
+1 -2
src/main/resources/resourcepacks/20/data/infinity/loot_tables/blocks/notes_block.json versions/1.21.8-neoforge/src/main/generated/data/infinity/loot_table/blocks/notes_block.json
··· 16 16 ], 17 17 "rolls": 1.0 18 18 } 19 - ], 20 - "random_sequence": "minecraft:blocks/note_block" 19 + ] 21 20 }
+1 -1
src/main/resources/resourcepacks/20/data/infinity/recipes/altar.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/altar.json
··· 12 12 "pattern": [ 13 13 "SSS", 14 14 " B ", 15 - " S " 15 + " B " 16 16 ], 17 17 "result": { 18 18 "item": "infinity:altar"
src/main/resources/resourcepacks/20/data/infinity/recipes/altar_from_portal.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/altar_from_portal.json
+3 -3
src/main/resources/resourcepacks/20/data/infinity/recipes/ant.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/ant.json
··· 5 5 "B": { 6 6 "item": "minecraft:black_concrete" 7 7 }, 8 - "W": { 9 - "item": "minecraft:white_concrete" 10 - }, 11 8 "M": { 12 9 "item": "infinity:star_of_lang" 10 + }, 11 + "W": { 12 + "item": "minecraft:white_concrete" 13 13 } 14 14 }, 15 15 "pattern": [
+2 -2
src/main/resources/resourcepacks/20/data/infinity/recipes/ant1.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/ant1.json
··· 3 3 "category": "building", 4 4 "key": { 5 5 "B": { 6 - "item": "infinity:black_matter" 6 + "item": "minecraft:black_concrete" 7 7 }, 8 8 "W": { 9 - "item": "infinity:white_matter" 9 + "item": "minecraft:white_concrete" 10 10 } 11 11 }, 12 12 "pattern": [
src/main/resources/resourcepacks/20/data/infinity/recipes/biome_bottle_from_portal.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/biome_bottle_from_portal.json
src/main/resources/resourcepacks/20/data/infinity/recipes/black_matter.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/black_matter.json
src/main/resources/resourcepacks/20/data/infinity/recipes/book_box_from_portal.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/book_box_from_portal.json
+1
src/main/resources/resourcepacks/20/data/infinity/recipes/chromatic_carpet.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/chromatic_carpet_from_portal.json
··· 3 3 "input": { 4 4 "tag": "minecraft:wool_carpets" 5 5 }, 6 + "lore": "recipe_info.portal.infinity.color", 6 7 "output": { 7 8 "item": "infinity:chromatic_carpet" 8 9 }
src/main/resources/resourcepacks/20/data/infinity/recipes/chromatic_coloring_carpet.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/chromatic_carpet.json
src/main/resources/resourcepacks/20/data/infinity/recipes/chromatic_coloring_wool.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/chromatic_wool.json
src/main/resources/resourcepacks/20/data/infinity/recipes/chromatic_matter.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/chromatic_matter_from_portal.json
src/main/resources/resourcepacks/20/data/infinity/recipes/chromatic_wool.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/chromatic_wool_from_portal.json
+3 -4
src/main/resources/resourcepacks/20/data/infinity/recipes/cosmic_altar.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/cosmic_altar.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "misc", 4 4 "key": { 5 - "L": { 6 - "item": "minecraft:lodestone" 7 - }, 8 5 "A": { 9 6 "item": "infinity:altar" 7 + }, 8 + "L": { 9 + "item": "minecraft:lodestone" 10 10 }, 11 11 "S": { 12 12 "item": "infinity:iridescent_star" ··· 18 18 "LAL" 19 19 ], 20 20 "result": { 21 - "count": 1, 22 21 "item": "infinity:cosmic_altar" 23 22 }, 24 23 "show_notification": true
+3 -3
src/main/resources/resourcepacks/20/data/infinity/recipes/cursor.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/cursor.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "building", 4 4 "key": { 5 - "L": { 6 - "item": "minecraft:lime_concrete" 7 - }, 8 5 "B": { 9 6 "item": "minecraft:black_concrete" 7 + }, 8 + "L": { 9 + "item": "minecraft:lime_concrete" 10 10 }, 11 11 "S": { 12 12 "item": "infinity:star_of_lang"
-1
src/main/resources/resourcepacks/20/data/infinity/recipes/f4.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/f4.json
··· 15 15 "OOO" 16 16 ], 17 17 "result": { 18 - "count": 1, 19 18 "item": "infinity:f4" 20 19 }, 21 20 "show_notification": true
+1
src/main/resources/resourcepacks/20/data/infinity/recipes/f4_from_portal.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/f4_from_portal.json
··· 3 3 "input": { 4 4 "item": "infinity:f4" 5 5 }, 6 + "lore": "recipe_info.portal.infinity.attuned", 6 7 "output": { 7 8 "item": "infinity:f4" 8 9 }
src/main/resources/resourcepacks/20/data/infinity/recipes/fine_item.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/fine_item.json
src/main/resources/resourcepacks/20/data/infinity/recipes/footprint.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/footprint.json
src/main/resources/resourcepacks/20/data/infinity/recipes/iridescence_bottle_from_portal.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/iridescent_potion_from_portal.json
src/main/resources/resourcepacks/20/data/infinity/recipes/iridescent_carpet.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/iridescent_carpet_from_iridescence.json
+4 -3
src/main/resources/resourcepacks/20/data/infinity/recipes/iridescent_carpet_from_wool.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/iridescent_carpet_from_wool.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "building", 4 4 "key": { 5 - "#": { 5 + "B": { 6 6 "item": "infinity:iridescent_wool" 7 7 } 8 8 }, 9 9 "pattern": [ 10 - "## " 10 + "BB" 11 11 ], 12 12 "result": { 13 13 "count": 3, 14 14 "item": "infinity:iridescent_carpet" 15 - } 15 + }, 16 + "show_notification": true 16 17 }
src/main/resources/resourcepacks/20/data/infinity/recipes/iridescent_star.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/iridescent_star_from_iridescence.json
src/main/resources/resourcepacks/20/data/infinity/recipes/iridescent_wool.json versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/iridescent_wool_from_iridescence.json
+1
src/main/resources/resourcepacks/20/data/infinity/recipes/key_from_portal.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/key_from_portal.json
··· 3 3 "input": { 4 4 "item": "minecraft:amethyst_shard" 5 5 }, 6 + "lore": "recipe_info.portal.infinity.attuned", 6 7 "output": { 7 8 "item": "infinity:key" 8 9 }
+2 -1
src/main/resources/resourcepacks/20/data/infinity/recipes/netherite_slab.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/netherite_slab.json
··· 12 12 "result": { 13 13 "count": 6, 14 14 "item": "infinity:netherite_slab" 15 - } 15 + }, 16 + "show_notification": true 16 17 }
-8
src/main/resources/resourcepacks/20/data/infinity/recipes/netherite_slab_from_stonecutting.json
··· 1 - { 2 - "type": "minecraft:stonecutting", 3 - "count": 2, 4 - "ingredient": { 5 - "item": "minecraft:netherite_block" 6 - }, 7 - "result": "infinity:netherite_slab" 8 - }
+2 -1
src/main/resources/resourcepacks/20/data/infinity/recipes/netherite_stairs.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/netherite_stairs.json
··· 14 14 "result": { 15 15 "count": 4, 16 16 "item": "infinity:netherite_stairs" 17 - } 17 + }, 18 + "show_notification": true 18 19 }
-8
src/main/resources/resourcepacks/20/data/infinity/recipes/netherite_stairs_from_stonecutting.json
··· 1 - { 2 - "type": "minecraft:stonecutting", 3 - "count": 1, 4 - "ingredient": { 5 - "item": "minecraft:netherite_block" 6 - }, 7 - "result": "infinity:netherite_stairs" 8 - }
src/main/resources/resourcepacks/20/data/infinity/recipes/notes_block_from_portal.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/notes_block_from_portal.json
src/main/resources/resourcepacks/20/data/infinity/recipes/timebomb_from_portal.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/timebomb_from_portal.json
src/main/resources/resourcepacks/20/data/infinity/recipes/white_matter.json versions/1.20.1-forge/src/main/generated/data/infinity/recipes/white_matter.json
src/main/resources/resourcepacks/20/data/infinity/tags/blocks/iridescent.json versions/1.21.8-fabric/src/main/generated/data/infinity/tags/block/iridescent.json
+3 -3
src/main/resources/resourcepacks/20/data/infinity/tags/items/iridescent.json versions/1.21.8-neoforge/src/main/generated/data/infinity/tags/item/iridescent.json
··· 2 2 "values": [ 3 3 "infinity:iridescent_wool", 4 4 "infinity:iridescent_carpet", 5 - "infinity:iridescent_star", 6 5 "infinity:iridescence_bucket", 7 - "infinity:cosmic_altar", 6 + "infinity:iridescent_star", 7 + "infinity:iridescent_potion", 8 8 "infinity:chromatic_potion", 9 - "infinity:iridescent_potion" 9 + "infinity:cosmic_altar" 10 10 ] 11 11 }
-7
src/main/resources/resourcepacks/20/data/infinity/tags/items/matter.json
··· 1 - { 2 - "values": [ 3 - "infinity:white_matter", 4 - "infinity:black_matter", 5 - "infinity:chromatic_matter" 6 - ] 7 - }
src/main/resources/resourcepacks/20/data/minecraft/tags/blocks/mineable/axe.json versions/1.20.1-forge/src/main/generated/data/minecraft/tags/blocks/mineable/axe.json
src/main/resources/resourcepacks/20/data/minecraft/tags/blocks/mineable/pickaxe.json versions/1.20.1-forge/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json
src/main/resources/resourcepacks/20/data/minecraft/tags/blocks/wool.json versions/1.20.1-forge/src/main/generated/data/minecraft/tags/blocks/wool.json
src/main/resources/resourcepacks/20/data/minecraft/tags/blocks/wool_carpets.json versions/1.20.1-forge/src/main/generated/data/minecraft/tags/blocks/wool_carpets.json
-1
src/main/resources/resourcepacks/20/data/minecraft/tags/entity_types/arthropod.json versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/entity_type/arthropod.json
··· 1 1 { 2 - "replace": false, 3 2 "values": [ 4 3 "infinity:ant" 5 4 ]
src/main/resources/resourcepacks/20/data/minecraft/tags/entity_types/frog_food.json versions/1.20.1-forge/src/main/generated/data/minecraft/tags/entity_types/frog_food.json
src/main/resources/resourcepacks/20/data/minecraft/tags/entity_types/skeletons.json versions/1.20.1-forge/src/main/generated/data/minecraft/tags/entity_types/skeletons.json
+1 -2
src/main/resources/resourcepacks/20/data/minecraft/tags/fluids/water.json versions/1.20.1-forge/src/main/generated/data/minecraft/tags/fluids/water.json
··· 1 1 { 2 2 "replace": false, 3 - "values": 4 - [ 3 + "values": [ 5 4 "infinity:flowing_iridescence", 6 5 "infinity:iridescence" 7 6 ]
src/main/resources/resourcepacks/20/data/minecraft/tags/items/wool.json versions/1.20.1-forge/src/main/generated/data/minecraft/tags/items/wool.json
src/main/resources/resourcepacks/20/data/minecraft/tags/items/wool_carpets.json versions/1.20.1-forge/src/main/generated/data/minecraft/tags/items/wool_carpets.json
+3 -3
src/main/resources/resourcepacks/22/data/infinity/recipe/altar.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/altar.json
··· 8 8 "pattern": [ 9 9 "SSS", 10 10 " B ", 11 - " S " 11 + " B " 12 12 ], 13 13 "result": { 14 + "count": 1, 14 15 "id": "infinity:altar" 15 - }, 16 - "show_notification": true 16 + } 17 17 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/altar_from_portal.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/altar_from_portal.json
··· 1 1 { 2 2 "type": "infinity:collision_portal", 3 3 "input": "minecraft:lectern", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:altar" 6 - }, 7 - "lore": "empty" 8 + } 8 9 }
-18
src/main/resources/resourcepacks/22/data/infinity/recipe/ant.json
··· 1 - { 2 - "type": "minecraft:crafting_shaped", 3 - "category": "building", 4 - "key": { 5 - "B": "minecraft:black_concrete", 6 - "W": "minecraft:white_concrete", 7 - "M": "infinity:star_of_lang" 8 - }, 9 - "pattern": [ 10 - "WBW", 11 - "BMB", 12 - "WBW" 13 - ], 14 - "result": { 15 - "id": "infinity:ant" 16 - }, 17 - "show_notification": true 18 - }
+4 -4
src/main/resources/resourcepacks/22/data/infinity/recipe/ant1.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/ant1.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "building", 4 4 "key": { 5 - "B": "infinity:black_matter", 6 - "W": "infinity:white_matter" 5 + "B": "minecraft:black_concrete", 6 + "W": "minecraft:white_concrete" 7 7 }, 8 8 "pattern": [ 9 9 "WBW", ··· 11 11 "WBW" 12 12 ], 13 13 "result": { 14 + "count": 1, 14 15 "id": "infinity:ant" 15 - }, 16 - "show_notification": true 16 + } 17 17 }
-4
src/main/resources/resourcepacks/22/data/infinity/recipe/biome_bottle_combining.json
··· 1 - { 2 - "type": "infinity:biome_bottle_combining", 3 - "category": "misc" 4 - }
-8
src/main/resources/resourcepacks/22/data/infinity/recipe/biome_bottle_from_portal.json
··· 1 - { 2 - "type": "infinity:collision_portal", 3 - "input": "minecraft:glass_bottle", 4 - "output": { 5 - "id": "infinity:biome_bottle" 6 - }, 7 - "lore": "empty" 8 - }
+3 -3
src/main/resources/resourcepacks/22/data/infinity/recipe/black_matter.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/black_matter.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "misc", 4 4 "key": { 5 - "B": "minecraft:black_concrete" 5 + "B": "minecraft:black_concrete" 6 6 }, 7 7 "pattern": [ 8 8 "BBB", ··· 10 10 "BBB" 11 11 ], 12 12 "result": { 13 + "count": 1, 13 14 "id": "infinity:black_matter" 14 - }, 15 - "show_notification": true 15 + } 16 16 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/book_box_from_portal.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/book_box_from_portal.json
··· 1 1 { 2 2 "type": "infinity:collision_portal", 3 3 "input": "minecraft:bookshelf", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:book_box" 6 - }, 7 - "lore": "empty" 8 + } 8 9 }
-8
src/main/resources/resourcepacks/22/data/infinity/recipe/chromatic_carpet.json
··· 1 - { 2 - "type": "infinity:collision_portal", 3 - "input":"#minecraft:wool_carpets", 4 - "output": { 5 - "id": "infinity:chromatic_carpet" 6 - }, 7 - "lore": "recipe_info.portal.infinity.color" 8 - }
src/main/resources/resourcepacks/22/data/infinity/recipe/chromatic_carpet_from_wool.json src/main/resources/resourcepacks/20/data/infinity/recipes/chromatic_carpet_from_wool.json
+2 -1
src/main/resources/resourcepacks/22/data/infinity/recipe/chromatic_coloring_carpet.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/chromatic_coloring_carpet.json
··· 1 1 { 2 2 "type": "infinity:chromatic_coloring", 3 - "input":"#minecraft:wool_carpets", 3 + "input": "#minecraft:wool_carpets", 4 4 "output": { 5 + "count": 1, 5 6 "id": "infinity:chromatic_carpet" 6 7 } 7 8 }
+1
src/main/resources/resourcepacks/22/data/infinity/recipe/chromatic_coloring_wool.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/chromatic_coloring_wool.json
··· 2 2 "type": "infinity:chromatic_coloring", 3 3 "input": "#minecraft:wool", 4 4 "output": { 5 + "count": 1, 5 6 "id": "infinity:chromatic_wool" 6 7 } 7 8 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/chromatic_matter.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/chromatic_matter.json
··· 1 1 { 2 2 "type": "infinity:collision_portal", 3 3 "input": "#infinity:matter", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:chromatic_matter" 6 - }, 7 - "lore": "recipe_info.portal.infinity.color" 8 + } 8 9 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/chromatic_matter_from_iridescence.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/chromatic_matter_from_iridescence.json
··· 1 1 { 2 2 "type": "infinity:collision_iridescence", 3 3 "input": "infinity:chromatic_matter", 4 + "lore": "recipe_info.iridescence.infinity.chromatic_matter", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:chromatic_matter" 6 - }, 7 - "lore": "recipe_info.iridescence.infinity.chromatic_matter" 8 + } 8 9 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/chromatic_wool.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/chromatic_wool.json
··· 1 1 { 2 2 "type": "infinity:collision_portal", 3 3 "input": "#minecraft:wool", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:chromatic_wool" 6 - }, 7 - "lore": "recipe_info.portal.infinity.color" 8 + } 8 9 }
+2 -3
src/main/resources/resourcepacks/22/data/infinity/recipe/cosmic_altar.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/cosmic_altar.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "misc", 4 4 "key": { 5 - "L": "minecraft:lodestone", 6 5 "A": "infinity:altar", 6 + "L": "minecraft:lodestone", 7 7 "S": "infinity:iridescent_star" 8 8 }, 9 9 "pattern": [ ··· 14 14 "result": { 15 15 "count": 1, 16 16 "id": "infinity:cosmic_altar" 17 - }, 18 - "show_notification": true 17 + } 19 18 }
+2 -3
src/main/resources/resourcepacks/22/data/infinity/recipe/cursor.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/cursor.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "building", 4 4 "key": { 5 - "L": "minecraft:lime_concrete", 6 5 "B": "minecraft:black_concrete", 6 + "L": "minecraft:lime_concrete", 7 7 "S": "infinity:star_of_lang" 8 8 }, 9 9 "pattern": [ ··· 14 14 "result": { 15 15 "count": 8, 16 16 "id": "infinity:cursor" 17 - }, 18 - "show_notification": true 17 + } 19 18 }
+2 -3
src/main/resources/resourcepacks/22/data/infinity/recipe/f4.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/f4.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "misc", 4 4 "key": { 5 - "O": "minecraft:obsidian", 5 + "O": "minecraft:obsidian", 6 6 "S": "infinity:iridescent_star" 7 7 }, 8 8 "pattern": [ ··· 13 13 "result": { 14 14 "count": 1, 15 15 "id": "infinity:f4" 16 - }, 17 - "show_notification": true 16 + } 18 17 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/f4_from_portal.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/f4_from_portal.json
··· 1 1 { 2 2 "type": "infinity:collision_portal", 3 3 "input": "infinity:f4", 4 + "lore": "recipe_info.portal.infinity.attuned", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:f4" 6 - }, 7 - "lore": "recipe_info.portal.infinity.attuned" 8 + } 8 9 }
-4
src/main/resources/resourcepacks/22/data/infinity/recipe/f4_recharging.json
··· 1 - { 2 - "type": "infinity:f4_recharging", 3 - "category": "misc" 4 - }
+2 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/fine_item.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/fine_item.json
··· 11 11 "GGG" 12 12 ], 13 13 "result": { 14 + "count": 1, 14 15 "id": "infinity:fine_item" 15 - }, 16 - "show_notification": true 16 + } 17 17 }
+1 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/footprint.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/footprint.json
··· 12 12 "result": { 13 13 "count": 8, 14 14 "id": "infinity:footprint" 15 - }, 16 - "show_notification": true 15 + } 17 16 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/iridescence_bottle_from_portal.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/iridescence_bottle_from_portal.json
··· 1 1 { 2 2 "type": "infinity:collision_portal", 3 3 "input": "infinity:chromatic_potion", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:iridescent_potion" 6 - }, 7 - "lore": "empty" 8 + } 8 9 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/iridescent_carpet.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/iridescent_carpet.json
··· 1 1 { 2 2 "type": "infinity:collision_iridescence", 3 3 "input": "infinity:chromatic_carpet", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:iridescent_carpet" 6 - }, 7 - "lore": "empty" 8 + } 8 9 }
+2 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/iridescent_carpet_from_wool.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/iridescent_carpet_from_wool.json
··· 2 2 "type": "minecraft:crafting_shaped", 3 3 "category": "building", 4 4 "key": { 5 - "#": "infinity:iridescent_wool" 5 + "B": "infinity:iridescent_wool" 6 6 }, 7 7 "pattern": [ 8 - "## " 8 + "BB" 9 9 ], 10 10 "result": { 11 11 "count": 3,
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/iridescent_star.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/iridescent_star.json
··· 1 1 { 2 2 "type": "infinity:collision_iridescence", 3 3 "input": "infinity:star_of_lang", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:iridescent_star" 6 - }, 7 - "lore": "empty" 8 + } 8 9 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/iridescent_wool.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/iridescent_wool.json
··· 1 1 { 2 2 "type": "infinity:collision_iridescence", 3 3 "input": "infinity:chromatic_wool", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:iridescent_wool" 6 - }, 7 - "lore": "empty" 8 + } 8 9 }
-8
src/main/resources/resourcepacks/22/data/infinity/recipe/key_from_iridescence.json
··· 1 - { 2 - "type": "infinity:collision_iridescence", 3 - "input": "infinity:key", 4 - "output": { 5 - "id": "infinity:key" 6 - }, 7 - "lore": "recipe_info.iridescence.infinity.key" 8 - }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/key_from_portal.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/key_from_portal.json
··· 1 1 { 2 2 "type": "infinity:collision_portal", 3 3 "input": "minecraft:amethyst_shard", 4 + "lore": "recipe_info.portal.infinity.attuned", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:key" 6 - }, 7 - "lore": "recipe_info.portal.infinity.attuned" 8 + } 8 9 }
src/main/resources/resourcepacks/22/data/infinity/recipe/netherite_slab.json versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/netherite_slab.json
-7
src/main/resources/resourcepacks/22/data/infinity/recipe/netherite_slab_from_stonecutting.json
··· 1 - { 2 - "type": "minecraft:stonecutting", 3 - "ingredient": "minecraft:netherite_block", 4 - "result": { 5 - "count": 2, 6 - "id": "infinity:netherite_slab" 7 - }}
src/main/resources/resourcepacks/22/data/infinity/recipe/netherite_stairs.json versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/netherite_stairs.json
-8
src/main/resources/resourcepacks/22/data/infinity/recipe/netherite_stairs_from_stonecutting.json
··· 1 - { 2 - "type": "minecraft:stonecutting", 3 - "ingredient": "minecraft:netherite_block", 4 - "result": { 5 - "count": 1, 6 - "id": "infinity:netherite_stairs" 7 - } 8 - }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/notes_block_from_portal.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/notes_block_from_portal.json
··· 1 1 { 2 2 "type": "infinity:collision_portal", 3 3 "input": "minecraft:note_block", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:notes_block" 6 - }, 7 - "lore": "empty" 8 + } 8 9 }
+3 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/timebomb_from_portal.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/timebomb_from_portal.json
··· 1 1 { 2 2 "type": "infinity:collision_portal", 3 3 "input": "minecraft:tnt", 4 + "lore": "empty", 4 5 "output": { 6 + "count": 1, 5 7 "id": "infinity:timebomb" 6 - }, 7 - "lore": "empty" 8 + } 8 9 }
+2 -2
src/main/resources/resourcepacks/22/data/infinity/recipe/white_matter.json versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/white_matter.json
··· 10 10 "BBB" 11 11 ], 12 12 "result": { 13 + "count": 1, 13 14 "id": "infinity:white_matter" 14 - }, 15 - "show_notification": true 15 + } 16 16 }
+1 -1
stonecutter.gradle.kts
··· 7 7 id("me.modmuss50.mod-publish-plugin") version "0.8.+" apply false 8 8 } 9 9 10 - stonecutter active "1.21.8-neoforge" 10 + stonecutter active "1.21.8-fabric" 11 11 12 12 stonecutter parameters { 13 13 constants.match(node.metadata.project.substringAfterLast('-'), "fabric", "forge", "neoforge")
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/building_blocks/ant.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:star_of_lang" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:ant" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_star_of_lang", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:ant" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/building_blocks/ant1.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:star_of_lang" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:ant1" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_star_of_lang", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:ant1" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/building_blocks/cursor.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:star_of_lang" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:cursor" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_star_of_lang", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:cursor" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/building_blocks/iridescent_carpet_from_wool.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_wool": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:iridescent_wool" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:iridescent_carpet_from_wool" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_iridescent_wool", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:iridescent_carpet_from_wool" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/building_blocks/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_slab": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:netherite_slab" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "minecraft:netherite_block_from_netherite_slab_stonecutting" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_netherite_slab", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "minecraft:netherite_block_from_netherite_slab_stonecutting" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/building_blocks/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_stairs": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:netherite_stairs" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "minecraft:netherite_block_from_netherite_stairs_stonecutting" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_netherite_stairs", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "minecraft:netherite_block_from_netherite_stairs_stonecutting" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/building_blocks/netherite_slab.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "minecraft:netherite_block" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:netherite_slab" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_netherite_block", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:netherite_slab" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/building_blocks/netherite_stairs.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "minecraft:netherite_block" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:netherite_stairs" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_netherite_block", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:netherite_stairs" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/misc/black_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_black_concrete": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "minecraft:black_concrete" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:black_matter" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_black_concrete", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:black_matter" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/misc/cosmic_altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:iridescent_star" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:cosmic_altar" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_iridescent_star", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:cosmic_altar" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/misc/f4.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:iridescent_star" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:f4" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_iridescent_star", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:f4" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/misc/fine_item.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:star_of_lang" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:fine_item" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_star_of_lang", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:fine_item" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/misc/footprint.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_light_gray_stained_glass_pane": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "minecraft:light_gray_stained_glass_pane" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:footprint" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_light_gray_stained_glass_pane", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:footprint" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/misc/white_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_the_recipe": { 5 + "conditions": { 6 + "recipe": "infinity:white_matter" 7 + }, 8 + "trigger": "minecraft:recipe_unlocked" 9 + }, 10 + "has_white_concrete": { 11 + "conditions": { 12 + "items": [ 13 + { 14 + "items": [ 15 + "minecraft:white_concrete" 16 + ] 17 + } 18 + ] 19 + }, 20 + "trigger": "minecraft:inventory_changed" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_white_concrete", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:white_matter" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-fabric/src/main/generated/data/infinity/advancements/recipes/redstone/altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_book_box": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:book_box" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:altar" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_book_box", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:altar" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/ant.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:ant" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/book_box.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:book_box" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/cosmic_altar.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:cosmic_altar" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/cursor.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:cursor" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/iridescent_carpet.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:iridescent_carpet" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/iridescent_kelp.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "minecraft:kelp" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/iridescent_kelp_plant.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "minecraft:kelp" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/iridescent_wool.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:iridescent_wool" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/netherite_stairs.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:netherite_stairs" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-fabric/src/main/generated/data/infinity/loot_tables/blocks/notes_block.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:notes_block" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+9
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/altar_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:lectern" 5 + }, 6 + "output": { 7 + "item": "infinity:altar" 8 + } 9 + }
+9
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/biome_bottle_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:glass_bottle" 5 + }, 6 + "output": { 7 + "item": "infinity:biome_bottle" 8 + } 9 + }
+18
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/black_matter.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:black_concrete" 7 + } 8 + }, 9 + "pattern": [ 10 + "BBB", 11 + "B B", 12 + "BBB" 13 + ], 14 + "result": { 15 + "item": "infinity:black_matter" 16 + }, 17 + "show_notification": true 18 + }
+9
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/book_box_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:bookshelf" 5 + }, 6 + "output": { 7 + "item": "infinity:book_box" 8 + } 9 + }
+9
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/chromatic_carpet.json
··· 1 + { 2 + "type": "infinity:chromatic_coloring", 3 + "input": { 4 + "tag": "minecraft:wool_carpets" 5 + }, 6 + "output": { 7 + "item": "infinity:chromatic_carpet" 8 + } 9 + }
+10
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/chromatic_carpet_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "tag": "minecraft:wool_carpets" 5 + }, 6 + "lore": "recipe_info.portal.infinity.color", 7 + "output": { 8 + "item": "infinity:chromatic_carpet" 9 + } 10 + }
+10
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/chromatic_matter_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:chromatic_matter" 5 + }, 6 + "lore": "recipe_info.iridescence.infinity.chromatic_matter", 7 + "output": { 8 + "item": "infinity:chromatic_matter" 9 + } 10 + }
+24
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/cosmic_altar.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "A": { 6 + "item": "infinity:altar" 7 + }, 8 + "L": { 9 + "item": "minecraft:lodestone" 10 + }, 11 + "S": { 12 + "item": "infinity:iridescent_star" 13 + } 14 + }, 15 + "pattern": [ 16 + "LAL", 17 + "ASA", 18 + "LAL" 19 + ], 20 + "result": { 21 + "item": "infinity:cosmic_altar" 22 + }, 23 + "show_notification": true 24 + }
+21
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/f4.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "O": { 6 + "item": "minecraft:obsidian" 7 + }, 8 + "S": { 9 + "item": "infinity:iridescent_star" 10 + } 11 + }, 12 + "pattern": [ 13 + "OOO", 14 + "OSO", 15 + "OOO" 16 + ], 17 + "result": { 18 + "item": "infinity:f4" 19 + }, 20 + "show_notification": true 21 + }
+10
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/f4_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "infinity:f4" 5 + }, 6 + "lore": "recipe_info.portal.infinity.attuned", 7 + "output": { 8 + "item": "infinity:f4" 9 + } 10 + }
+9
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/iridescent_carpet_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:chromatic_carpet" 5 + }, 6 + "output": { 7 + "item": "infinity:iridescent_carpet" 8 + } 9 + }
+17
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/iridescent_carpet_from_wool.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": { 6 + "item": "infinity:iridescent_wool" 7 + } 8 + }, 9 + "pattern": [ 10 + "BB" 11 + ], 12 + "result": { 13 + "count": 3, 14 + "item": "infinity:iridescent_carpet" 15 + }, 16 + "show_notification": true 17 + }
+9
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/iridescent_potion_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "infinity:chromatic_potion" 5 + }, 6 + "output": { 7 + "item": "infinity:iridescent_potion" 8 + } 9 + }
+10
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/key_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:key" 5 + }, 6 + "lore": "recipe_info.iridescence.infinity.key", 7 + "output": { 8 + "item": "infinity:key" 9 + } 10 + }
+10
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/key_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:amethyst_shard" 5 + }, 6 + "lore": "recipe_info.portal.infinity.attuned", 7 + "output": { 8 + "item": "infinity:key" 9 + } 10 + }
+8
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "count": 2, 4 + "ingredient": { 5 + "item": "infinity:netherite_slab" 6 + }, 7 + "result": "minecraft:netherite_block" 8 + }
+8
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "count": 1, 4 + "ingredient": { 5 + "item": "infinity:netherite_stairs" 6 + }, 7 + "result": "minecraft:netherite_block" 8 + }
+17
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/netherite_slab.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "#": { 6 + "item": "minecraft:netherite_block" 7 + } 8 + }, 9 + "pattern": [ 10 + "###" 11 + ], 12 + "result": { 13 + "count": 6, 14 + "item": "infinity:netherite_slab" 15 + }, 16 + "show_notification": true 17 + }
+19
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/netherite_stairs.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "#": { 6 + "item": "minecraft:netherite_block" 7 + } 8 + }, 9 + "pattern": [ 10 + "# ", 11 + "## ", 12 + "###" 13 + ], 14 + "result": { 15 + "count": 4, 16 + "item": "infinity:netherite_stairs" 17 + }, 18 + "show_notification": true 19 + }
+9
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/notes_block_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:note_block" 5 + }, 6 + "output": { 7 + "item": "infinity:notes_block" 8 + } 9 + }
+9
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/timebomb_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:tnt" 5 + }, 6 + "output": { 7 + "item": "infinity:timebomb" 8 + } 9 + }
+18
versions/1.20.1-fabric/src/main/generated/data/infinity/recipes/white_matter.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:white_concrete" 7 + } 8 + }, 9 + "pattern": [ 10 + "BBB", 11 + "B B", 12 + "BBB" 13 + ], 14 + "result": { 15 + "item": "infinity:white_matter" 16 + }, 17 + "show_notification": true 18 + }
+9
versions/1.20.1-fabric/src/main/generated/data/infinity/tags/blocks/iridescent.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:iridescent_wool", 5 + "infinity:iridescent_carpet", 6 + "infinity:iridescence", 7 + "infinity:cosmic_altar" 8 + ] 9 + }
+12
versions/1.20.1-fabric/src/main/generated/data/infinity/tags/items/iridescent.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:iridescent_wool", 5 + "infinity:iridescent_carpet", 6 + "infinity:iridescence_bucket", 7 + "infinity:iridescent_star", 8 + "infinity:iridescent_potion", 9 + "infinity:chromatic_potion", 10 + "infinity:cosmic_altar" 11 + ] 12 + }
+8
versions/1.20.1-fabric/src/main/generated/data/infinity/tags/items/matter.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:black_matter", 5 + "infinity:chromatic_matter", 6 + "infinity:white_matter" 7 + ] 8 + }
+6
versions/1.20.1-forge/src/main/generated/data/c/tags/items/buckets.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:iridescence_bucket" 5 + ] 6 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/building_blocks/ant.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:star_of_lang" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:ant" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_star_of_lang", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:ant" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/building_blocks/ant1.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:star_of_lang" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:ant1" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_star_of_lang", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:ant1" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/building_blocks/cursor.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:star_of_lang" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:cursor" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_star_of_lang", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:cursor" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/building_blocks/iridescent_carpet_from_wool.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_wool": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:iridescent_wool" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:iridescent_carpet_from_wool" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_iridescent_wool", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:iridescent_carpet_from_wool" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/building_blocks/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_slab": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:netherite_slab" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "minecraft:netherite_block_from_netherite_slab_stonecutting" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_netherite_slab", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "minecraft:netherite_block_from_netherite_slab_stonecutting" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/building_blocks/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_stairs": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:netherite_stairs" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "minecraft:netherite_block_from_netherite_stairs_stonecutting" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_netherite_stairs", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "minecraft:netherite_block_from_netherite_stairs_stonecutting" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/building_blocks/netherite_slab.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "minecraft:netherite_block" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:netherite_slab" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_netherite_block", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:netherite_slab" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/building_blocks/netherite_stairs.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "minecraft:netherite_block" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:netherite_stairs" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_netherite_block", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:netherite_stairs" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/misc/black_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_black_concrete": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "minecraft:black_concrete" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:black_matter" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_black_concrete", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:black_matter" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/misc/cosmic_altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:iridescent_star" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:cosmic_altar" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_iridescent_star", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:cosmic_altar" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/misc/f4.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:iridescent_star" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:f4" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_iridescent_star", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:f4" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/misc/fine_item.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:star_of_lang" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:fine_item" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_star_of_lang", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:fine_item" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/misc/footprint.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_light_gray_stained_glass_pane": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "minecraft:light_gray_stained_glass_pane" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:footprint" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_light_gray_stained_glass_pane", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:footprint" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/misc/white_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_the_recipe": { 5 + "conditions": { 6 + "recipe": "infinity:white_matter" 7 + }, 8 + "trigger": "minecraft:recipe_unlocked" 9 + }, 10 + "has_white_concrete": { 11 + "conditions": { 12 + "items": [ 13 + { 14 + "items": [ 15 + "minecraft:white_concrete" 16 + ] 17 + } 18 + ] 19 + }, 20 + "trigger": "minecraft:inventory_changed" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_white_concrete", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:white_matter" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+35
versions/1.20.1-forge/src/main/generated/data/infinity/advancements/recipes/redstone/altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_book_box": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": [ 9 + "infinity:book_box" 10 + ] 11 + } 12 + ] 13 + }, 14 + "trigger": "minecraft:inventory_changed" 15 + }, 16 + "has_the_recipe": { 17 + "conditions": { 18 + "recipe": "infinity:altar" 19 + }, 20 + "trigger": "minecraft:recipe_unlocked" 21 + } 22 + }, 23 + "requirements": [ 24 + [ 25 + "has_book_box", 26 + "has_the_recipe" 27 + ] 28 + ], 29 + "rewards": { 30 + "recipes": [ 31 + "infinity:altar" 32 + ] 33 + }, 34 + "sends_telemetry_event": false 35 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/ant.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:ant" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/book_box.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:book_box" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/cosmic_altar.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:cosmic_altar" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/cursor.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:cursor" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/iridescent_carpet.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:iridescent_carpet" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/iridescent_kelp.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "minecraft:kelp" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/iridescent_kelp_plant.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "minecraft:kelp" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/iridescent_wool.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:iridescent_wool" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/netherite_stairs.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:netherite_stairs" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.20.1-forge/src/main/generated/data/infinity/loot_tables/blocks/notes_block.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:notes_block" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+10
versions/1.20.1-forge/src/main/generated/data/infinity/recipes/chromatic_matter_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:chromatic_matter" 5 + }, 6 + "lore": "recipe_info.iridescence.infinity.chromatic_matter", 7 + "output": { 8 + "item": "infinity:chromatic_matter" 9 + } 10 + }
+9
versions/1.20.1-forge/src/main/generated/data/infinity/recipes/chromatic_matter_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "tag": "infinity:matter" 5 + }, 6 + "output": { 7 + "item": "infinity:chromatic_matter" 8 + } 9 + }
+9
versions/1.20.1-forge/src/main/generated/data/infinity/recipes/chromatic_wool.json
··· 1 + { 2 + "type": "infinity:chromatic_coloring", 3 + "input": { 4 + "tag": "minecraft:wool" 5 + }, 6 + "output": { 7 + "item": "infinity:chromatic_wool" 8 + } 9 + }
+9
versions/1.20.1-forge/src/main/generated/data/infinity/recipes/chromatic_wool_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "tag": "minecraft:wool" 5 + }, 6 + "output": { 7 + "item": "infinity:chromatic_wool" 8 + } 9 + }
+9
versions/1.20.1-forge/src/main/generated/data/infinity/recipes/iridescent_star_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:star_of_lang" 5 + }, 6 + "output": { 7 + "item": "infinity:iridescent_star" 8 + } 9 + }
+9
versions/1.20.1-forge/src/main/generated/data/infinity/recipes/iridescent_wool_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:chromatic_wool" 5 + }, 6 + "output": { 7 + "item": "infinity:iridescent_wool" 8 + } 9 + }
+10
versions/1.20.1-forge/src/main/generated/data/infinity/recipes/key_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:key" 5 + }, 6 + "lore": "recipe_info.iridescence.infinity.key", 7 + "output": { 8 + "item": "infinity:key" 9 + } 10 + }
+8
versions/1.20.1-forge/src/main/generated/data/infinity/recipes/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "count": 2, 4 + "ingredient": { 5 + "item": "infinity:netherite_slab" 6 + }, 7 + "result": "minecraft:netherite_block" 8 + }
+8
versions/1.20.1-forge/src/main/generated/data/infinity/recipes/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "count": 1, 4 + "ingredient": { 5 + "item": "infinity:netherite_stairs" 6 + }, 7 + "result": "minecraft:netherite_block" 8 + }
+9
versions/1.20.1-forge/src/main/generated/data/infinity/tags/blocks/iridescent.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:iridescent_wool", 5 + "infinity:iridescent_carpet", 6 + "infinity:iridescence", 7 + "infinity:cosmic_altar" 8 + ] 9 + }
+12
versions/1.20.1-forge/src/main/generated/data/infinity/tags/items/iridescent.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:iridescent_wool", 5 + "infinity:iridescent_carpet", 6 + "infinity:iridescence_bucket", 7 + "infinity:iridescent_star", 8 + "infinity:iridescent_potion", 9 + "infinity:chromatic_potion", 10 + "infinity:cosmic_altar" 11 + ] 12 + }
+8
versions/1.20.1-forge/src/main/generated/data/infinity/tags/items/matter.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:black_matter", 5 + "infinity:chromatic_matter", 6 + "infinity:white_matter" 7 + ] 8 + }
+6
versions/1.20.1-forge/src/main/generated/data/minecraft/tags/blocks/portals.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:neither_portal" 5 + ] 6 + }
+6
versions/1.20.1-forge/src/main/generated/data/minecraft/tags/blocks/slabs.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:netherite_slab" 5 + ] 6 + }
+6
versions/1.20.1-forge/src/main/generated/data/minecraft/tags/blocks/stairs.json
··· 1 + { 2 + "replace": false, 3 + "values": [ 4 + "infinity:netherite_stairs" 5 + ] 6 + }
+5
versions/1.21.1-fabric/src/main/generated/data/c/tags/item/buckets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescence_bucket" 4 + ] 5 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/ant.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:ant" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:ant" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/ant1.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:ant1" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:ant1" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/cursor.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:cursor" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:cursor" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/iridescent_carpet_from_wool.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_wool": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_wool" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:iridescent_carpet_from_wool" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_wool" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:iridescent_carpet_from_wool" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_slab": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:netherite_slab" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_block_from_netherite_slab_stonecutting" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_slab" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_block_from_netherite_slab_stonecutting" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_stairs": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:netherite_stairs" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_block_from_netherite_stairs_stonecutting" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_stairs" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_block_from_netherite_stairs_stonecutting" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_slab.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:netherite_block" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_slab" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_block" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_slab" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_stairs.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:netherite_block" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_stairs" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_block" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_stairs" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/misc/black_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_black_concrete": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:black_concrete" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:black_matter" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_black_concrete" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:black_matter" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/misc/cosmic_altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_star" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:cosmic_altar" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_star" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:cosmic_altar" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/misc/f4.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_star" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:f4" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_star" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:f4" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/misc/fine_item.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:fine_item" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:fine_item" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/misc/footprint.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_light_gray_stained_glass_pane": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:light_gray_stained_glass_pane" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:footprint" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_light_gray_stained_glass_pane" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:footprint" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/misc/white_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_the_recipe": { 5 + "conditions": { 6 + "recipe": "infinity:white_matter" 7 + }, 8 + "trigger": "minecraft:recipe_unlocked" 9 + }, 10 + "has_white_concrete": { 11 + "conditions": { 12 + "items": [ 13 + { 14 + "items": "minecraft:white_concrete" 15 + } 16 + ] 17 + }, 18 + "trigger": "minecraft:inventory_changed" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_white_concrete" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:white_matter" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-fabric/src/main/generated/data/infinity/advancement/recipes/redstone/altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_book_box": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:book_box" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:altar" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_book_box" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:altar" 30 + ] 31 + } 32 + }
+20
versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/ant.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:ant" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/book_box.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:book_box" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/cosmic_altar.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:cosmic_altar" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/iridescent_carpet.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:iridescent_carpet" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/iridescent_kelp.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "minecraft:kelp" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/iridescent_kelp_plant.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "minecraft:kelp" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/iridescent_wool.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:iridescent_wool" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/netherite_stairs.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:netherite_stairs" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-fabric/src/main/generated/data/infinity/loot_table/blocks/notes_block.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:notes_block" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+21
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/altar.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "redstone", 4 + "key": { 5 + "B": { 6 + "item": "infinity:book_box" 7 + }, 8 + "S": { 9 + "item": "minecraft:stone_slab" 10 + } 11 + }, 12 + "pattern": [ 13 + "SSS", 14 + " B ", 15 + " B " 16 + ], 17 + "result": { 18 + "count": 1, 19 + "id": "infinity:altar" 20 + } 21 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/altar_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:lectern" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:altar" 10 + } 11 + }
+24
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/ant.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:black_concrete" 7 + }, 8 + "M": { 9 + "item": "infinity:star_of_lang" 10 + }, 11 + "W": { 12 + "item": "minecraft:white_concrete" 13 + } 14 + }, 15 + "pattern": [ 16 + "WBW", 17 + "BMB", 18 + "WBW" 19 + ], 20 + "result": { 21 + "count": 1, 22 + "id": "infinity:ant" 23 + } 24 + }
+21
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/ant1.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:black_concrete" 7 + }, 8 + "W": { 9 + "item": "minecraft:white_concrete" 10 + } 11 + }, 12 + "pattern": [ 13 + "WBW", 14 + "B B", 15 + "WBW" 16 + ], 17 + "result": { 18 + "count": 1, 19 + "id": "infinity:ant" 20 + } 21 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/biome_bottle_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:glass_bottle" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:biome_bottle" 10 + } 11 + }
+18
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/black_matter.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:black_concrete" 7 + } 8 + }, 9 + "pattern": [ 10 + "BBB", 11 + "B B", 12 + "BBB" 13 + ], 14 + "result": { 15 + "count": 1, 16 + "id": "infinity:black_matter" 17 + } 18 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/book_box_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:bookshelf" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:book_box" 10 + } 11 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/chromatic_carpet_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "tag": "minecraft:wool_carpets" 5 + }, 6 + "lore": "recipe_info.portal.infinity.color", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:chromatic_carpet" 10 + } 11 + }
+10
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/chromatic_coloring_carpet.json
··· 1 + { 2 + "type": "infinity:chromatic_coloring", 3 + "input": { 4 + "tag": "minecraft:wool_carpets" 5 + }, 6 + "output": { 7 + "count": 1, 8 + "id": "infinity:chromatic_carpet" 9 + } 10 + }
+10
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/chromatic_coloring_wool.json
··· 1 + { 2 + "type": "infinity:chromatic_coloring", 3 + "input": { 4 + "tag": "minecraft:wool" 5 + }, 6 + "output": { 7 + "count": 1, 8 + "id": "infinity:chromatic_wool" 9 + } 10 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/chromatic_matter.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "tag": "infinity:matter" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:chromatic_matter" 10 + } 11 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/chromatic_matter_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:chromatic_matter" 5 + }, 6 + "lore": "recipe_info.iridescence.infinity.chromatic_matter", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:chromatic_matter" 10 + } 11 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/chromatic_wool.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "tag": "minecraft:wool" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:chromatic_wool" 10 + } 11 + }
+24
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/cosmic_altar.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "A": { 6 + "item": "infinity:altar" 7 + }, 8 + "L": { 9 + "item": "minecraft:lodestone" 10 + }, 11 + "S": { 12 + "item": "infinity:iridescent_star" 13 + } 14 + }, 15 + "pattern": [ 16 + "LAL", 17 + "ASA", 18 + "LAL" 19 + ], 20 + "result": { 21 + "count": 1, 22 + "id": "infinity:cosmic_altar" 23 + } 24 + }
+24
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/cursor.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:black_concrete" 7 + }, 8 + "L": { 9 + "item": "minecraft:lime_concrete" 10 + }, 11 + "S": { 12 + "item": "infinity:star_of_lang" 13 + } 14 + }, 15 + "pattern": [ 16 + "BLB", 17 + "LSL", 18 + "BLB" 19 + ], 20 + "result": { 21 + "count": 8, 22 + "id": "infinity:cursor" 23 + } 24 + }
+21
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/f4.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "O": { 6 + "item": "minecraft:obsidian" 7 + }, 8 + "S": { 9 + "item": "infinity:iridescent_star" 10 + } 11 + }, 12 + "pattern": [ 13 + "OOO", 14 + "OSO", 15 + "OOO" 16 + ], 17 + "result": { 18 + "count": 1, 19 + "id": "infinity:f4" 20 + } 21 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/f4_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "infinity:f4" 5 + }, 6 + "lore": "recipe_info.portal.infinity.attuned", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:f4" 10 + } 11 + }
+21
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/fine_item.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "G": { 6 + "item": "minecraft:grass_block" 7 + }, 8 + "S": { 9 + "item": "infinity:star_of_lang" 10 + } 11 + }, 12 + "pattern": [ 13 + "GGG", 14 + "GSG", 15 + "GGG" 16 + ], 17 + "result": { 18 + "count": 1, 19 + "id": "infinity:fine_item" 20 + } 21 + }
+18
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/footprint.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "P": { 6 + "item": "minecraft:light_gray_stained_glass_pane" 7 + } 8 + }, 9 + "pattern": [ 10 + "PPP", 11 + "P P", 12 + "PPP" 13 + ], 14 + "result": { 15 + "count": 8, 16 + "id": "infinity:footprint" 17 + } 18 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/iridescence_bottle_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "infinity:chromatic_potion" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:iridescent_potion" 10 + } 11 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/iridescent_carpet.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:chromatic_carpet" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:iridescent_carpet" 10 + } 11 + }
+16
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/iridescent_carpet_from_wool.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": { 6 + "item": "infinity:iridescent_wool" 7 + } 8 + }, 9 + "pattern": [ 10 + "BB" 11 + ], 12 + "result": { 13 + "count": 3, 14 + "id": "infinity:iridescent_carpet" 15 + } 16 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/iridescent_star.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:star_of_lang" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:iridescent_star" 10 + } 11 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/iridescent_wool.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:chromatic_wool" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:iridescent_wool" 10 + } 11 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/key_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": { 4 + "item": "infinity:key" 5 + }, 6 + "lore": "recipe_info.iridescence.infinity.key", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:key" 10 + } 11 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/key_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:amethyst_shard" 5 + }, 6 + "lore": "recipe_info.portal.infinity.attuned", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:key" 10 + } 11 + }
+10
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "ingredient": { 4 + "item": "infinity:netherite_slab" 5 + }, 6 + "result": { 7 + "count": 2, 8 + "id": "minecraft:netherite_block" 9 + } 10 + }
+10
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "ingredient": { 4 + "item": "infinity:netherite_stairs" 5 + }, 6 + "result": { 7 + "count": 1, 8 + "id": "minecraft:netherite_block" 9 + } 10 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/notes_block_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:note_block" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:notes_block" 10 + } 11 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/timebomb_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": { 4 + "item": "minecraft:tnt" 5 + }, 6 + "lore": "empty", 7 + "output": { 8 + "count": 1, 9 + "id": "infinity:timebomb" 10 + } 11 + }
+18
versions/1.21.1-fabric/src/main/generated/data/infinity/recipe/white_matter.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:white_concrete" 7 + } 8 + }, 9 + "pattern": [ 10 + "BBB", 11 + "B B", 12 + "BBB" 13 + ], 14 + "result": { 15 + "count": 1, 16 + "id": "infinity:white_matter" 17 + } 18 + }
+8
versions/1.21.1-fabric/src/main/generated/data/infinity/tags/block/iridescent.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:iridescent_carpet", 5 + "infinity:iridescence", 6 + "infinity:cosmic_altar" 7 + ] 8 + }
+11
versions/1.21.1-fabric/src/main/generated/data/infinity/tags/item/iridescent.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:iridescent_carpet", 5 + "infinity:iridescence_bucket", 6 + "infinity:iridescent_star", 7 + "infinity:iridescent_potion", 8 + "infinity:chromatic_potion", 9 + "infinity:cosmic_altar" 10 + ] 11 + }
+7
versions/1.21.1-fabric/src/main/generated/data/infinity/tags/item/matter.json
··· 1 + { 2 + "values": [ 3 + "infinity:black_matter", 4 + "infinity:chromatic_matter", 5 + "infinity:white_matter" 6 + ] 7 + }
+5
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/block/mineable/axe.json
··· 1 + { 2 + "values": [ 3 + "infinity:book_box" 4 + ] 5 + }
+11
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json
··· 1 + { 2 + "values": [ 3 + "infinity:altar", 4 + "infinity:cursor", 5 + "infinity:netherite_slab", 6 + "infinity:netherite_stairs", 7 + "infinity:biome_bottle", 8 + "infinity:ant", 9 + "infinity:cosmic_altar" 10 + ] 11 + }
+5
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/block/portals.json
··· 1 + { 2 + "values": [ 3 + "infinity:neither_portal" 4 + ] 5 + }
+5
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/block/slabs.json
··· 1 + { 2 + "values": [ 3 + "infinity:netherite_slab" 4 + ] 5 + }
+5
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/block/stairs.json
··· 1 + { 2 + "values": [ 3 + "infinity:netherite_stairs" 4 + ] 5 + }
+6
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/block/wool.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:chromatic_wool" 5 + ] 6 + }
+6
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/block/wool_carpets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_carpet", 4 + "infinity:chromatic_carpet" 5 + ] 6 + }
+5
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/entity_type/arthropod.json
··· 1 + { 2 + "values": [ 3 + "infinity:ant" 4 + ] 5 + }
+5
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/entity_type/frog_food.json
··· 1 + { 2 + "values": [ 3 + "infinity:chaos_slime" 4 + ] 5 + }
+5
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/entity_type/skeletons.json
··· 1 + { 2 + "values": [ 3 + "infinity:chaos_skeleton" 4 + ] 5 + }
+6
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/fluid/water.json
··· 1 + { 2 + "values": [ 3 + "infinity:flowing_iridescence", 4 + "infinity:iridescence" 5 + ] 6 + }
+6
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/item/wool.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:chromatic_wool" 5 + ] 6 + }
+6
versions/1.21.1-fabric/src/main/generated/data/minecraft/tags/item/wool_carpets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_carpet", 4 + "infinity:chromatic_carpet" 5 + ] 6 + }
+5
versions/1.21.1-neoforge/src/main/generated/data/c/tags/item/buckets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescence_bucket" 4 + ] 5 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/ant.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:ant" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:ant" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/ant1.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:ant1" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:ant1" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/cursor.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:cursor" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:cursor" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/iridescent_carpet_from_wool.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_wool": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_wool" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:iridescent_carpet_from_wool" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_wool" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:iridescent_carpet_from_wool" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_slab": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:netherite_slab" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_block_from_netherite_slab_stonecutting" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_slab" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_block_from_netherite_slab_stonecutting" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_stairs": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:netherite_stairs" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_block_from_netherite_stairs_stonecutting" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_stairs" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_block_from_netherite_stairs_stonecutting" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_slab.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:netherite_block" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_slab" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_block" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_slab" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_stairs.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:netherite_block" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_stairs" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_block" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_stairs" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/black_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_black_concrete": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:black_concrete" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:black_matter" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_black_concrete" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:black_matter" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/cosmic_altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_star" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:cosmic_altar" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_star" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:cosmic_altar" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/f4.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_star" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:f4" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_star" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:f4" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/fine_item.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:fine_item" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:fine_item" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/footprint.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_light_gray_stained_glass_pane": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:light_gray_stained_glass_pane" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:footprint" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_light_gray_stained_glass_pane" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:footprint" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/white_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_the_recipe": { 5 + "conditions": { 6 + "recipe": "infinity:white_matter" 7 + }, 8 + "trigger": "minecraft:recipe_unlocked" 9 + }, 10 + "has_white_concrete": { 11 + "conditions": { 12 + "items": [ 13 + { 14 + "items": "minecraft:white_concrete" 15 + } 16 + ] 17 + }, 18 + "trigger": "minecraft:inventory_changed" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_white_concrete" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:white_matter" 30 + ] 31 + } 32 + }
+32
versions/1.21.1-neoforge/src/main/generated/data/infinity/advancement/recipes/redstone/altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_book_box": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:book_box" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:altar" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_book_box" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:altar" 30 + ] 31 + } 32 + }
+20
versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/ant.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:ant" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/book_box.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:book_box" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/cosmic_altar.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:cosmic_altar" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/iridescent_carpet.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:iridescent_carpet" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/iridescent_kelp.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "minecraft:kelp" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/iridescent_kelp_plant.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "minecraft:kelp" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/iridescent_wool.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:iridescent_wool" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/netherite_stairs.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:netherite_stairs" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+20
versions/1.21.1-neoforge/src/main/generated/data/infinity/loot_table/blocks/notes_block.json
··· 1 + { 2 + "type": "minecraft:block", 3 + "pools": [ 4 + { 5 + "bonus_rolls": 0.0, 6 + "conditions": [ 7 + { 8 + "condition": "minecraft:survives_explosion" 9 + } 10 + ], 11 + "entries": [ 12 + { 13 + "type": "minecraft:item", 14 + "name": "infinity:notes_block" 15 + } 16 + ], 17 + "rolls": 1.0 18 + } 19 + ] 20 + }
+21
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/altar.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "redstone", 4 + "key": { 5 + "B": { 6 + "item": "infinity:book_box" 7 + }, 8 + "S": { 9 + "item": "minecraft:stone_slab" 10 + } 11 + }, 12 + "pattern": [ 13 + "SSS", 14 + " B ", 15 + " B " 16 + ], 17 + "result": { 18 + "count": 1, 19 + "id": "infinity:altar" 20 + } 21 + }
+24
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/ant.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:black_concrete" 7 + }, 8 + "M": { 9 + "item": "infinity:star_of_lang" 10 + }, 11 + "W": { 12 + "item": "minecraft:white_concrete" 13 + } 14 + }, 15 + "pattern": [ 16 + "WBW", 17 + "BMB", 18 + "WBW" 19 + ], 20 + "result": { 21 + "count": 1, 22 + "id": "infinity:ant" 23 + } 24 + }
+21
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/ant1.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:black_concrete" 7 + }, 8 + "W": { 9 + "item": "minecraft:white_concrete" 10 + } 11 + }, 12 + "pattern": [ 13 + "WBW", 14 + "B B", 15 + "WBW" 16 + ], 17 + "result": { 18 + "count": 1, 19 + "id": "infinity:ant" 20 + } 21 + }
+24
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/cursor.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": { 6 + "item": "minecraft:black_concrete" 7 + }, 8 + "L": { 9 + "item": "minecraft:lime_concrete" 10 + }, 11 + "S": { 12 + "item": "infinity:star_of_lang" 13 + } 14 + }, 15 + "pattern": [ 16 + "BLB", 17 + "LSL", 18 + "BLB" 19 + ], 20 + "result": { 21 + "count": 8, 22 + "id": "infinity:cursor" 23 + } 24 + }
+21
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/fine_item.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "G": { 6 + "item": "minecraft:grass_block" 7 + }, 8 + "S": { 9 + "item": "infinity:star_of_lang" 10 + } 11 + }, 12 + "pattern": [ 13 + "GGG", 14 + "GSG", 15 + "GGG" 16 + ], 17 + "result": { 18 + "count": 1, 19 + "id": "infinity:fine_item" 20 + } 21 + }
+18
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/footprint.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "P": { 6 + "item": "minecraft:light_gray_stained_glass_pane" 7 + } 8 + }, 9 + "pattern": [ 10 + "PPP", 11 + "P P", 12 + "PPP" 13 + ], 14 + "result": { 15 + "count": 8, 16 + "id": "infinity:footprint" 17 + } 18 + }
+10
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "ingredient": { 4 + "item": "infinity:netherite_slab" 5 + }, 6 + "result": { 7 + "count": 2, 8 + "id": "minecraft:netherite_block" 9 + } 10 + }
+10
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "ingredient": { 4 + "item": "infinity:netherite_stairs" 5 + }, 6 + "result": { 7 + "count": 1, 8 + "id": "minecraft:netherite_block" 9 + } 10 + }
+16
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/netherite_slab.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "#": { 6 + "item": "minecraft:netherite_block" 7 + } 8 + }, 9 + "pattern": [ 10 + "###" 11 + ], 12 + "result": { 13 + "count": 6, 14 + "id": "infinity:netherite_slab" 15 + } 16 + }
+18
versions/1.21.1-neoforge/src/main/generated/data/infinity/recipe/netherite_stairs.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "#": { 6 + "item": "minecraft:netherite_block" 7 + } 8 + }, 9 + "pattern": [ 10 + "# ", 11 + "## ", 12 + "###" 13 + ], 14 + "result": { 15 + "count": 4, 16 + "id": "infinity:netherite_stairs" 17 + } 18 + }
+8
versions/1.21.1-neoforge/src/main/generated/data/infinity/tags/block/iridescent.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:iridescent_carpet", 5 + "infinity:iridescence", 6 + "infinity:cosmic_altar" 7 + ] 8 + }
+11
versions/1.21.1-neoforge/src/main/generated/data/infinity/tags/item/iridescent.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:iridescent_carpet", 5 + "infinity:iridescence_bucket", 6 + "infinity:iridescent_star", 7 + "infinity:iridescent_potion", 8 + "infinity:chromatic_potion", 9 + "infinity:cosmic_altar" 10 + ] 11 + }
+7
versions/1.21.1-neoforge/src/main/generated/data/infinity/tags/item/matter.json
··· 1 + { 2 + "values": [ 3 + "infinity:black_matter", 4 + "infinity:chromatic_matter", 5 + "infinity:white_matter" 6 + ] 7 + }
+5
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/block/mineable/axe.json
··· 1 + { 2 + "values": [ 3 + "infinity:book_box" 4 + ] 5 + }
+11
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json
··· 1 + { 2 + "values": [ 3 + "infinity:altar", 4 + "infinity:cursor", 5 + "infinity:netherite_slab", 6 + "infinity:netherite_stairs", 7 + "infinity:biome_bottle", 8 + "infinity:ant", 9 + "infinity:cosmic_altar" 10 + ] 11 + }
+5
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/block/portals.json
··· 1 + { 2 + "values": [ 3 + "infinity:neither_portal" 4 + ] 5 + }
+5
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/block/slabs.json
··· 1 + { 2 + "values": [ 3 + "infinity:netherite_slab" 4 + ] 5 + }
+5
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/block/stairs.json
··· 1 + { 2 + "values": [ 3 + "infinity:netherite_stairs" 4 + ] 5 + }
+6
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/block/wool.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:chromatic_wool" 5 + ] 6 + }
+6
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/block/wool_carpets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_carpet", 4 + "infinity:chromatic_carpet" 5 + ] 6 + }
+5
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/entity_type/arthropod.json
··· 1 + { 2 + "values": [ 3 + "infinity:ant" 4 + ] 5 + }
+5
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/entity_type/frog_food.json
··· 1 + { 2 + "values": [ 3 + "infinity:chaos_slime" 4 + ] 5 + }
+5
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/entity_type/skeletons.json
··· 1 + { 2 + "values": [ 3 + "infinity:chaos_skeleton" 4 + ] 5 + }
+6
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/fluid/water.json
··· 1 + { 2 + "values": [ 3 + "infinity:flowing_iridescence", 4 + "infinity:iridescence" 5 + ] 6 + }
+6
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/item/wool.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:chromatic_wool" 5 + ] 6 + }
+6
versions/1.21.1-neoforge/src/main/generated/data/minecraft/tags/item/wool_carpets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_carpet", 4 + "infinity:chromatic_carpet" 5 + ] 6 + }
+5
versions/1.21.8-fabric/src/main/generated/data/c/tags/item/buckets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescence_bucket" 4 + ] 5 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/ant.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:ant" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:ant" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/ant1.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:ant1" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:ant1" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/cursor.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:cursor" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:cursor" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/iridescent_carpet_from_wool.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_wool": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_wool" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:iridescent_carpet_from_wool" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_wool" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:iridescent_carpet_from_wool" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_slab": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:netherite_slab" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_block_from_netherite_slab_stonecutting" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_slab" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_block_from_netherite_slab_stonecutting" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_stairs": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:netherite_stairs" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_block_from_netherite_stairs_stonecutting" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_stairs" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_block_from_netherite_stairs_stonecutting" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_slab.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:netherite_block" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_slab" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_block" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_slab" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_stairs.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:netherite_block" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_stairs" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_block" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_stairs" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/misc/black_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_black_concrete": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:black_concrete" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:black_matter" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_black_concrete" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:black_matter" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/misc/cosmic_altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_star" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:cosmic_altar" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_star" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:cosmic_altar" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/misc/f4.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_star" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:f4" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_star" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:f4" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/misc/fine_item.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:fine_item" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:fine_item" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/misc/footprint.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_light_gray_stained_glass_pane": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:light_gray_stained_glass_pane" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:footprint" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_light_gray_stained_glass_pane" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:footprint" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/misc/white_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_the_recipe": { 5 + "conditions": { 6 + "recipe": "infinity:white_matter" 7 + }, 8 + "trigger": "minecraft:recipe_unlocked" 9 + }, 10 + "has_white_concrete": { 11 + "conditions": { 12 + "items": [ 13 + { 14 + "items": "minecraft:white_concrete" 15 + } 16 + ] 17 + }, 18 + "trigger": "minecraft:inventory_changed" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_white_concrete" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:white_matter" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-fabric/src/main/generated/data/infinity/advancement/recipes/redstone/altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_book_box": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:book_box" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:altar" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_book_box" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:altar" 30 + ] 31 + } 32 + }
+17
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/altar.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "redstone", 4 + "key": { 5 + "B": "infinity:book_box", 6 + "S": "minecraft:stone_slab" 7 + }, 8 + "pattern": [ 9 + "SSS", 10 + " B ", 11 + " B " 12 + ], 13 + "result": { 14 + "count": 1, 15 + "id": "infinity:altar" 16 + } 17 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/altar_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "minecraft:lectern", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:altar" 8 + } 9 + }
+18
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/ant.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": "minecraft:black_concrete", 6 + "M": "infinity:star_of_lang", 7 + "W": "minecraft:white_concrete" 8 + }, 9 + "pattern": [ 10 + "WBW", 11 + "BMB", 12 + "WBW" 13 + ], 14 + "result": { 15 + "count": 1, 16 + "id": "infinity:ant" 17 + } 18 + }
+17
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/ant1.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": "minecraft:black_concrete", 6 + "W": "minecraft:white_concrete" 7 + }, 8 + "pattern": [ 9 + "WBW", 10 + "B B", 11 + "WBW" 12 + ], 13 + "result": { 14 + "count": 1, 15 + "id": "infinity:ant" 16 + } 17 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/biome_bottle_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "minecraft:glass_bottle", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:biome_bottle" 8 + } 9 + }
+16
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/black_matter.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "B": "minecraft:black_concrete" 6 + }, 7 + "pattern": [ 8 + "BBB", 9 + "B B", 10 + "BBB" 11 + ], 12 + "result": { 13 + "count": 1, 14 + "id": "infinity:black_matter" 15 + } 16 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/book_box_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "minecraft:bookshelf", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:book_box" 8 + } 9 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/chromatic_carpet_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "#minecraft:wool_carpets", 4 + "lore": "recipe_info.portal.infinity.color", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:chromatic_carpet" 8 + } 9 + }
+8
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/chromatic_coloring_carpet.json
··· 1 + { 2 + "type": "infinity:chromatic_coloring", 3 + "input": "#minecraft:wool_carpets", 4 + "output": { 5 + "count": 1, 6 + "id": "infinity:chromatic_carpet" 7 + } 8 + }
+8
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/chromatic_coloring_wool.json
··· 1 + { 2 + "type": "infinity:chromatic_coloring", 3 + "input": "#minecraft:wool", 4 + "output": { 5 + "count": 1, 6 + "id": "infinity:chromatic_wool" 7 + } 8 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/chromatic_matter.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "#infinity:matter", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:chromatic_matter" 8 + } 9 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/chromatic_matter_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": "infinity:chromatic_matter", 4 + "lore": "recipe_info.iridescence.infinity.chromatic_matter", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:chromatic_matter" 8 + } 9 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/chromatic_wool.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "#minecraft:wool", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:chromatic_wool" 8 + } 9 + }
+18
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/cosmic_altar.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "A": "infinity:altar", 6 + "L": "minecraft:lodestone", 7 + "S": "infinity:iridescent_star" 8 + }, 9 + "pattern": [ 10 + "LAL", 11 + "ASA", 12 + "LAL" 13 + ], 14 + "result": { 15 + "count": 1, 16 + "id": "infinity:cosmic_altar" 17 + } 18 + }
+18
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/cursor.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": "minecraft:black_concrete", 6 + "L": "minecraft:lime_concrete", 7 + "S": "infinity:star_of_lang" 8 + }, 9 + "pattern": [ 10 + "BLB", 11 + "LSL", 12 + "BLB" 13 + ], 14 + "result": { 15 + "count": 8, 16 + "id": "infinity:cursor" 17 + } 18 + }
+17
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/f4.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "O": "minecraft:obsidian", 6 + "S": "infinity:iridescent_star" 7 + }, 8 + "pattern": [ 9 + "OOO", 10 + "OSO", 11 + "OOO" 12 + ], 13 + "result": { 14 + "count": 1, 15 + "id": "infinity:f4" 16 + } 17 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/f4_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "infinity:f4", 4 + "lore": "recipe_info.portal.infinity.attuned", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:f4" 8 + } 9 + }
+17
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/fine_item.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "G": "minecraft:grass_block", 6 + "S": "infinity:star_of_lang" 7 + }, 8 + "pattern": [ 9 + "GGG", 10 + "GSG", 11 + "GGG" 12 + ], 13 + "result": { 14 + "count": 1, 15 + "id": "infinity:fine_item" 16 + } 17 + }
+16
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/footprint.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "P": "minecraft:light_gray_stained_glass_pane" 6 + }, 7 + "pattern": [ 8 + "PPP", 9 + "P P", 10 + "PPP" 11 + ], 12 + "result": { 13 + "count": 8, 14 + "id": "infinity:footprint" 15 + } 16 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/iridescence_bottle_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "infinity:chromatic_potion", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:iridescent_potion" 8 + } 9 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/iridescent_carpet.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": "infinity:chromatic_carpet", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:iridescent_carpet" 8 + } 9 + }
+14
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/iridescent_carpet_from_wool.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": "infinity:iridescent_wool" 6 + }, 7 + "pattern": [ 8 + "BB" 9 + ], 10 + "result": { 11 + "count": 3, 12 + "id": "infinity:iridescent_carpet" 13 + } 14 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/iridescent_star.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": "infinity:star_of_lang", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:iridescent_star" 8 + } 9 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/iridescent_wool.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": "infinity:chromatic_wool", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:iridescent_wool" 8 + } 9 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/key_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": "infinity:key", 4 + "lore": "recipe_info.iridescence.infinity.key", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:key" 8 + } 9 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/key_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "minecraft:amethyst_shard", 4 + "lore": "recipe_info.portal.infinity.attuned", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:key" 8 + } 9 + }
+8
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "ingredient": "infinity:netherite_slab", 4 + "result": { 5 + "count": 2, 6 + "id": "minecraft:netherite_block" 7 + } 8 + }
+8
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "ingredient": "infinity:netherite_stairs", 4 + "result": { 5 + "count": 1, 6 + "id": "minecraft:netherite_block" 7 + } 8 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/notes_block_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "minecraft:note_block", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:notes_block" 8 + } 9 + }
+9
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/timebomb_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "minecraft:tnt", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:timebomb" 8 + } 9 + }
+16
versions/1.21.8-fabric/src/main/generated/data/infinity/recipe/white_matter.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "misc", 4 + "key": { 5 + "B": "minecraft:white_concrete" 6 + }, 7 + "pattern": [ 8 + "BBB", 9 + "B B", 10 + "BBB" 11 + ], 12 + "result": { 13 + "count": 1, 14 + "id": "infinity:white_matter" 15 + } 16 + }
+7
versions/1.21.8-fabric/src/main/generated/data/infinity/tags/item/matter.json
··· 1 + { 2 + "values": [ 3 + "infinity:black_matter", 4 + "infinity:chromatic_matter", 5 + "infinity:white_matter" 6 + ] 7 + }
+5
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/block/mineable/axe.json
··· 1 + { 2 + "values": [ 3 + "infinity:book_box" 4 + ] 5 + }
+11
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json
··· 1 + { 2 + "values": [ 3 + "infinity:altar", 4 + "infinity:cursor", 5 + "infinity:netherite_slab", 6 + "infinity:netherite_stairs", 7 + "infinity:biome_bottle", 8 + "infinity:ant", 9 + "infinity:cosmic_altar" 10 + ] 11 + }
+5
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/block/portals.json
··· 1 + { 2 + "values": [ 3 + "infinity:neither_portal" 4 + ] 5 + }
+5
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/block/slabs.json
··· 1 + { 2 + "values": [ 3 + "infinity:netherite_slab" 4 + ] 5 + }
+5
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/block/stairs.json
··· 1 + { 2 + "values": [ 3 + "infinity:netherite_stairs" 4 + ] 5 + }
+6
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/block/wool.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:chromatic_wool" 5 + ] 6 + }
+6
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/block/wool_carpets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_carpet", 4 + "infinity:chromatic_carpet" 5 + ] 6 + }
+5
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/entity_type/frog_food.json
··· 1 + { 2 + "values": [ 3 + "infinity:chaos_slime" 4 + ] 5 + }
+5
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/entity_type/skeletons.json
··· 1 + { 2 + "values": [ 3 + "infinity:chaos_skeleton" 4 + ] 5 + }
+6
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/fluid/water.json
··· 1 + { 2 + "values": [ 3 + "infinity:flowing_iridescence", 4 + "infinity:iridescence" 5 + ] 6 + }
+6
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/item/wool.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:chromatic_wool" 5 + ] 6 + }
+6
versions/1.21.8-fabric/src/main/generated/data/minecraft/tags/item/wool_carpets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_carpet", 4 + "infinity:chromatic_carpet" 5 + ] 6 + }
+5
versions/1.21.8-neoforge/src/main/generated/data/c/tags/item/buckets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescence_bucket" 4 + ] 5 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/ant.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:ant" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:ant" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/ant1.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:ant1" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:ant1" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/cursor.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:cursor" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:cursor" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/iridescent_carpet_from_wool.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_wool": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_wool" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:iridescent_carpet_from_wool" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_wool" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:iridescent_carpet_from_wool" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_slab": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:netherite_slab" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_block_from_netherite_slab_stonecutting" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_slab" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_block_from_netherite_slab_stonecutting" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_stairs": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:netherite_stairs" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_block_from_netherite_stairs_stonecutting" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_stairs" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_block_from_netherite_stairs_stonecutting" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_slab.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:netherite_block" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_slab" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_block" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_slab" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/building_blocks/netherite_stairs.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_netherite_block": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:netherite_block" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:netherite_stairs" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_netherite_block" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:netherite_stairs" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/black_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_black_concrete": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:black_concrete" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:black_matter" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_black_concrete" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:black_matter" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/cosmic_altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_star" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:cosmic_altar" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_star" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:cosmic_altar" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/f4.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_iridescent_star": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:iridescent_star" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:f4" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_iridescent_star" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:f4" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/fine_item.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_star_of_lang": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:star_of_lang" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:fine_item" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_star_of_lang" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:fine_item" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/footprint.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_light_gray_stained_glass_pane": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "minecraft:light_gray_stained_glass_pane" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:footprint" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_light_gray_stained_glass_pane" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:footprint" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/misc/white_matter.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_the_recipe": { 5 + "conditions": { 6 + "recipe": "infinity:white_matter" 7 + }, 8 + "trigger": "minecraft:recipe_unlocked" 9 + }, 10 + "has_white_concrete": { 11 + "conditions": { 12 + "items": [ 13 + { 14 + "items": "minecraft:white_concrete" 15 + } 16 + ] 17 + }, 18 + "trigger": "minecraft:inventory_changed" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_white_concrete" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:white_matter" 30 + ] 31 + } 32 + }
+32
versions/1.21.8-neoforge/src/main/generated/data/infinity/advancement/recipes/redstone/altar.json
··· 1 + { 2 + "parent": "minecraft:recipes/root", 3 + "criteria": { 4 + "has_book_box": { 5 + "conditions": { 6 + "items": [ 7 + { 8 + "items": "infinity:book_box" 9 + } 10 + ] 11 + }, 12 + "trigger": "minecraft:inventory_changed" 13 + }, 14 + "has_the_recipe": { 15 + "conditions": { 16 + "recipe": "infinity:altar" 17 + }, 18 + "trigger": "minecraft:recipe_unlocked" 19 + } 20 + }, 21 + "requirements": [ 22 + [ 23 + "has_the_recipe", 24 + "has_book_box" 25 + ] 26 + ], 27 + "rewards": { 28 + "recipes": [ 29 + "infinity:altar" 30 + ] 31 + } 32 + }
+18
versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/ant.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "B": "minecraft:black_concrete", 6 + "M": "infinity:star_of_lang", 7 + "W": "minecraft:white_concrete" 8 + }, 9 + "pattern": [ 10 + "WBW", 11 + "BMB", 12 + "WBW" 13 + ], 14 + "result": { 15 + "count": 1, 16 + "id": "infinity:ant" 17 + } 18 + }
+9
versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/biome_bottle_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "minecraft:glass_bottle", 4 + "lore": "empty", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:biome_bottle" 8 + } 9 + }
+9
versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/chromatic_carpet_from_portal.json
··· 1 + { 2 + "type": "infinity:collision_portal", 3 + "input": "#minecraft:wool_carpets", 4 + "lore": "recipe_info.portal.infinity.color", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:chromatic_carpet" 8 + } 9 + }
+9
versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/key_from_iridescence.json
··· 1 + { 2 + "type": "infinity:collision_iridescence", 3 + "input": "infinity:key", 4 + "lore": "recipe_info.iridescence.infinity.key", 5 + "output": { 6 + "count": 1, 7 + "id": "infinity:key" 8 + } 9 + }
+8
versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/netherite_block_from_netherite_slab_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "ingredient": "infinity:netherite_slab", 4 + "result": { 5 + "count": 2, 6 + "id": "minecraft:netherite_block" 7 + } 8 + }
+8
versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/netherite_block_from_netherite_stairs_stonecutting.json
··· 1 + { 2 + "type": "minecraft:stonecutting", 3 + "ingredient": "infinity:netherite_stairs", 4 + "result": { 5 + "count": 1, 6 + "id": "minecraft:netherite_block" 7 + } 8 + }
+14
versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/netherite_slab.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "#": "minecraft:netherite_block" 6 + }, 7 + "pattern": [ 8 + "###" 9 + ], 10 + "result": { 11 + "count": 6, 12 + "id": "infinity:netherite_slab" 13 + } 14 + }
+16
versions/1.21.8-neoforge/src/main/generated/data/infinity/recipe/netherite_stairs.json
··· 1 + { 2 + "type": "minecraft:crafting_shaped", 3 + "category": "building", 4 + "key": { 5 + "#": "minecraft:netherite_block" 6 + }, 7 + "pattern": [ 8 + "# ", 9 + "## ", 10 + "###" 11 + ], 12 + "result": { 13 + "count": 4, 14 + "id": "infinity:netherite_stairs" 15 + } 16 + }
+7
versions/1.21.8-neoforge/src/main/generated/data/infinity/tags/item/matter.json
··· 1 + { 2 + "values": [ 3 + "infinity:black_matter", 4 + "infinity:chromatic_matter", 5 + "infinity:white_matter" 6 + ] 7 + }
+5
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/block/mineable/axe.json
··· 1 + { 2 + "values": [ 3 + "infinity:book_box" 4 + ] 5 + }
+11
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json
··· 1 + { 2 + "values": [ 3 + "infinity:altar", 4 + "infinity:cursor", 5 + "infinity:netherite_slab", 6 + "infinity:netherite_stairs", 7 + "infinity:biome_bottle", 8 + "infinity:ant", 9 + "infinity:cosmic_altar" 10 + ] 11 + }
+5
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/block/portals.json
··· 1 + { 2 + "values": [ 3 + "infinity:neither_portal" 4 + ] 5 + }
+5
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/block/slabs.json
··· 1 + { 2 + "values": [ 3 + "infinity:netherite_slab" 4 + ] 5 + }
+5
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/block/stairs.json
··· 1 + { 2 + "values": [ 3 + "infinity:netherite_stairs" 4 + ] 5 + }
+6
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/block/wool.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:chromatic_wool" 5 + ] 6 + }
+6
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/block/wool_carpets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_carpet", 4 + "infinity:chromatic_carpet" 5 + ] 6 + }
+5
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/entity_type/frog_food.json
··· 1 + { 2 + "values": [ 3 + "infinity:chaos_slime" 4 + ] 5 + }
+5
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/entity_type/skeletons.json
··· 1 + { 2 + "values": [ 3 + "infinity:chaos_skeleton" 4 + ] 5 + }
+6
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/fluid/water.json
··· 1 + { 2 + "values": [ 3 + "infinity:flowing_iridescence", 4 + "infinity:iridescence" 5 + ] 6 + }
+6
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/item/wool.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_wool", 4 + "infinity:chromatic_wool" 5 + ] 6 + }
+6
versions/1.21.8-neoforge/src/main/generated/data/minecraft/tags/item/wool_carpets.json
··· 1 + { 2 + "values": [ 3 + "infinity:iridescent_carpet", 4 + "infinity:chromatic_carpet" 5 + ] 6 + }