diff --git a/build.gradle b/build.gradle index 669399ea..b8c6d9ff 100644 --- a/build.gradle +++ b/build.gradle @@ -157,10 +157,11 @@ dependencies { // JEI OPTIONAL compileOnly(fg.deobf("mezz.jei:jei-${mc_version}-common-api:${jei_version}")) compileOnly(fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}")) - implementation(fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}")) + compileOnly(fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}")) // REI OPTIONAL - compileOnly(fg.deobf("me.shedaniel:RoughlyEnoughItems-forge:${rei_version}")) - compileOnly(fg.deobf("me.shedaniel.cloth:cloth-config-forge:${cloth_config_version}")) + implementation(fg.deobf("me.shedaniel:RoughlyEnoughItems-forge:${rei_version}")) + implementation(fg.deobf("me.shedaniel.cloth:cloth-config-forge:${cloth_config_version}")) + implementation(fg.deobf("curse.maven:reipc-521393:4837449")) // KubeJS OPTIONAL implementation fg.deobf("dev.architectury:architectury-forge:${architectury_version}") implementation fg.deobf("dev.latvian.mods:rhino-forge:${rhino_version}") diff --git a/src/main/java/thedarkcolour/exdeorum/compat/CompatHelper.java b/src/main/java/thedarkcolour/exdeorum/compat/CompatHelper.java new file mode 100644 index 00000000..121c653a --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/compat/CompatHelper.java @@ -0,0 +1,178 @@ +/* + * Ex Deorum + * Copyright (c) 2024 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.compat; + +import com.google.common.collect.Lists; +import net.minecraft.world.item.Item; +import net.minecraftforge.fml.ModList; +import thedarkcolour.exdeorum.registry.EItems; + +import java.util.ArrayList; +import java.util.List; + +public class CompatHelper { + public static List getAvailableBarrels(boolean registered) { + // Vanilla barrels + List barrels = registered ? Lists.newArrayList(EItems.OAK_BARREL.get(), EItems.SPRUCE_BARREL.get(), EItems.BIRCH_BARREL.get(), EItems.JUNGLE_BARREL.get(), EItems.ACACIA_BARREL.get(), EItems.DARK_OAK_BARREL.get(), EItems.MANGROVE_BARREL.get(), EItems.CHERRY_BARREL.get(), EItems.BAMBOO_BARREL.get(), EItems.CRIMSON_BARREL.get(), EItems.WARPED_BARREL.get(), EItems.STONE_BARREL.get()) : new ArrayList<>(); + ModList mods = ModList.get(); + + if (mods.isLoaded(ModIds.BIOMES_O_PLENTY) == registered) { + barrels.add(EItems.FIR_BARREL.get()); + barrels.add(EItems.REDWOOD_BARREL.get()); + barrels.add(EItems.MAHOGANY_BARREL.get()); + barrels.add(EItems.JACARANDA_BARREL.get()); + barrels.add(EItems.PALM_BARREL.get()); + barrels.add(EItems.WILLOW_BARREL.get()); + barrels.add(EItems.DEAD_BARREL.get()); + barrels.add(EItems.MAGIC_BARREL.get()); + barrels.add(EItems.UMBRAN_BARREL.get()); + barrels.add(EItems.HELLBARK_BARREL.get()); + } + if (mods.isLoaded(ModIds.ARS_NOUVEAU) == registered) { + barrels.add(EItems.ARCHWOOD_BARREL.get()); + } + if (mods.isLoaded(ModIds.AETHER) == registered) { + barrels.add(EItems.SKYROOT_BARREL.get()); + } + if (mods.isLoaded(ModIds.BLUE_SKIES) == registered) { + barrels.add(EItems.BLUEBRIGHT_BARREL.get()); + barrels.add(EItems.STARLIT_BARREL.get()); + barrels.add(EItems.FROSTBRIGHT_BARREL.get()); + barrels.add(EItems.COMET_BARREL.get()); + barrels.add(EItems.LUNAR_BARREL.get()); + barrels.add(EItems.DUSK_BARREL.get()); + barrels.add(EItems.MAPLE_BARREL.get()); + barrels.add(EItems.CRYSTALLIZED_BARREL.get()); + } + + return barrels; + } + + public static List getAvailableSieves(boolean registered) { + List sieves = registered ? Lists.newArrayList( + EItems.OAK_SIEVE.get(), + EItems.SPRUCE_SIEVE.get(), + EItems.BIRCH_SIEVE.get(), + EItems.JUNGLE_SIEVE.get(), + EItems.ACACIA_SIEVE.get(), + EItems.DARK_OAK_SIEVE.get(), + EItems.MANGROVE_SIEVE.get(), + EItems.CHERRY_SIEVE.get(), + EItems.BAMBOO_SIEVE.get(), + EItems.CRIMSON_SIEVE.get(), + EItems.WARPED_SIEVE.get(), + EItems.MECHANICAL_SIEVE.get() + ) : new ArrayList<>(); + + if (ModList.get().isLoaded(ModIds.BIOMES_O_PLENTY) == registered) { + sieves.add(EItems.FIR_SIEVE.get()); + sieves.add(EItems.REDWOOD_SIEVE.get()); + sieves.add(EItems.MAHOGANY_SIEVE.get()); + sieves.add(EItems.JACARANDA_SIEVE.get()); + sieves.add(EItems.PALM_SIEVE.get()); + sieves.add(EItems.WILLOW_SIEVE.get()); + sieves.add(EItems.DEAD_SIEVE.get()); + sieves.add(EItems.MAGIC_SIEVE.get()); + sieves.add(EItems.UMBRAN_SIEVE.get()); + sieves.add(EItems.HELLBARK_SIEVE.get()); + } + if (ModList.get().isLoaded(ModIds.ARS_NOUVEAU) == registered) { + sieves.add(EItems.ARCHWOOD_SIEVE.get()); + } + if (ModList.get().isLoaded(ModIds.AETHER) == registered) { + sieves.add(EItems.SKYROOT_SIEVE.get()); + } + if (ModList.get().isLoaded(ModIds.BLUE_SKIES) == registered) { + sieves.add(EItems.BLUEBRIGHT_SIEVE.get()); + sieves.add(EItems.STARLIT_SIEVE.get()); + sieves.add(EItems.FROSTBRIGHT_SIEVE.get()); + sieves.add(EItems.COMET_SIEVE.get()); + sieves.add(EItems.LUNAR_SIEVE.get()); + sieves.add(EItems.DUSK_SIEVE.get()); + sieves.add(EItems.MAPLE_SIEVE.get()); + sieves.add(EItems.CRYSTALLIZED_SIEVE.get()); + } + + return sieves; + } + + public static List getAvailableLavaCrucibles(boolean registered) { + List lavaCrucibles = registered ? Lists.newArrayList( + EItems.PORCELAIN_CRUCIBLE.get(), + EItems.WARPED_CRUCIBLE.get(), + EItems.CRIMSON_CRUCIBLE.get() + ) : new ArrayList<>(); + + if (ModList.get().isLoaded(ModIds.BIOMES_O_PLENTY) == registered) { + lavaCrucibles.add(EItems.HELLBARK_CRUCIBLE.get()); + } + if (ModList.get().isLoaded(ModIds.BLUE_SKIES) == registered) { + lavaCrucibles.add(EItems.CRYSTALLIZED_CRUCIBLE.get()); + } + + return lavaCrucibles; + } + + public static List getAvailableWaterCrucibles(boolean registered) { + List waterCrucibles = registered ? Lists.newArrayList( + EItems.OAK_CRUCIBLE.get(), + EItems.SPRUCE_CRUCIBLE.get(), + EItems.BIRCH_CRUCIBLE.get(), + EItems.JUNGLE_CRUCIBLE.get(), + EItems.ACACIA_CRUCIBLE.get(), + EItems.DARK_OAK_CRUCIBLE.get(), + EItems.MANGROVE_CRUCIBLE.get(), + EItems.CHERRY_CRUCIBLE.get(), + EItems.BAMBOO_CRUCIBLE.get() + ) : new ArrayList<>(); + + if (ModList.get().isLoaded(ModIds.BIOMES_O_PLENTY) == registered) { + waterCrucibles.add(EItems.FIR_CRUCIBLE.get()); + waterCrucibles.add(EItems.REDWOOD_CRUCIBLE.get()); + waterCrucibles.add(EItems.MAHOGANY_CRUCIBLE.get()); + waterCrucibles.add(EItems.JACARANDA_CRUCIBLE.get()); + waterCrucibles.add(EItems.PALM_CRUCIBLE.get()); + waterCrucibles.add(EItems.WILLOW_CRUCIBLE.get()); + waterCrucibles.add(EItems.DEAD_CRUCIBLE.get()); + waterCrucibles.add(EItems.MAGIC_CRUCIBLE.get()); + waterCrucibles.add(EItems.UMBRAN_CRUCIBLE.get()); + } + if (ModList.get().isLoaded(ModIds.ARS_NOUVEAU) == registered) { + waterCrucibles.add(EItems.CASCADING_ARCHWOOD_CRUCIBLE.get()); + waterCrucibles.add(EItems.BLAZING_ARCHWOOD_CRUCIBLE.get()); + waterCrucibles.add(EItems.VEXING_ARCHWOOD_CRUCIBLE.get()); + waterCrucibles.add(EItems.FLOURISHING_ARCHWOOD_CRUCIBLE.get()); + } + if (ModList.get().isLoaded(ModIds.AETHER) == registered) { + waterCrucibles.add(EItems.SKYROOT_CRUCIBLE.get()); + waterCrucibles.add(EItems.GOLDEN_OAK_CRUCIBLE.get()); + } + if (ModList.get().isLoaded(ModIds.BLUE_SKIES) == registered) { + waterCrucibles.add(EItems.BLUEBRIGHT_CRUCIBLE.get()); + waterCrucibles.add(EItems.STARLIT_CRUCIBLE.get()); + waterCrucibles.add(EItems.FROSTBRIGHT_CRUCIBLE.get()); + waterCrucibles.add(EItems.COMET_CRUCIBLE.get()); + waterCrucibles.add(EItems.LUNAR_CRUCIBLE.get()); + waterCrucibles.add(EItems.DUSK_CRUCIBLE.get()); + waterCrucibles.add(EItems.MAPLE_CRUCIBLE.get()); + } + + return waterCrucibles; + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/compat/jei/ExDeorumJeiPlugin.java b/src/main/java/thedarkcolour/exdeorum/compat/jei/ExDeorumJeiPlugin.java index 708fc8ac..5bed7c6f 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/jei/ExDeorumJeiPlugin.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/jei/ExDeorumJeiPlugin.java @@ -36,7 +36,6 @@ import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; -import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Recipe; @@ -45,13 +44,12 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LiquidBlock; import net.minecraft.world.level.block.WallTorchBlock; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.ModList; import thedarkcolour.exdeorum.ExDeorum; import thedarkcolour.exdeorum.blockentity.LavaCrucibleBlockEntity; import thedarkcolour.exdeorum.client.screen.MechanicalHammerScreen; import thedarkcolour.exdeorum.client.screen.MechanicalSieveScreen; +import thedarkcolour.exdeorum.compat.CompatHelper; import thedarkcolour.exdeorum.compat.GroupedSieveRecipe; -import thedarkcolour.exdeorum.compat.ModIds; import thedarkcolour.exdeorum.data.TranslationKeys; import thedarkcolour.exdeorum.item.WateringCanItem; import thedarkcolour.exdeorum.recipe.RecipeUtil; @@ -108,89 +106,11 @@ public class ExDeorumJeiPlugin implements IModPlugin { @Override public void registerRecipeCatalysts(IRecipeCatalystRegistration registration) { - var barrels = getAvailableBarrels(); - var sieves = Lists.newArrayList( - EItems.OAK_SIEVE.get(), - EItems.SPRUCE_SIEVE.get(), - EItems.BIRCH_SIEVE.get(), - EItems.JUNGLE_SIEVE.get(), - EItems.ACACIA_SIEVE.get(), - EItems.DARK_OAK_SIEVE.get(), - EItems.MANGROVE_SIEVE.get(), - EItems.CHERRY_SIEVE.get(), - EItems.BAMBOO_SIEVE.get(), - EItems.CRIMSON_SIEVE.get(), - EItems.WARPED_SIEVE.get(), - EItems.MECHANICAL_SIEVE.get() - ); - var lavaCrucibles = Lists.newArrayList( - EItems.PORCELAIN_CRUCIBLE.get(), - EItems.WARPED_CRUCIBLE.get(), - EItems.CRIMSON_CRUCIBLE.get() - ); - var waterCrucibles = Lists.newArrayList( - EItems.OAK_CRUCIBLE.get(), - EItems.SPRUCE_CRUCIBLE.get(), - EItems.BIRCH_CRUCIBLE.get(), - EItems.JUNGLE_CRUCIBLE.get(), - EItems.ACACIA_CRUCIBLE.get(), - EItems.DARK_OAK_CRUCIBLE.get(), - EItems.MANGROVE_CRUCIBLE.get(), - EItems.CHERRY_CRUCIBLE.get(), - EItems.BAMBOO_CRUCIBLE.get() - ); - if (ModList.get().isLoaded(ModIds.BIOMES_O_PLENTY)) { - sieves.add(EItems.FIR_SIEVE.get()); - sieves.add(EItems.REDWOOD_SIEVE.get()); - sieves.add(EItems.MAHOGANY_SIEVE.get()); - sieves.add(EItems.JACARANDA_SIEVE.get()); - sieves.add(EItems.PALM_SIEVE.get()); - sieves.add(EItems.WILLOW_SIEVE.get()); - sieves.add(EItems.DEAD_SIEVE.get()); - sieves.add(EItems.MAGIC_SIEVE.get()); - sieves.add(EItems.UMBRAN_SIEVE.get()); - sieves.add(EItems.HELLBARK_SIEVE.get()); - lavaCrucibles.add(EItems.HELLBARK_CRUCIBLE.get()); - waterCrucibles.add(EItems.FIR_CRUCIBLE.get()); - waterCrucibles.add(EItems.REDWOOD_CRUCIBLE.get()); - waterCrucibles.add(EItems.MAHOGANY_CRUCIBLE.get()); - waterCrucibles.add(EItems.JACARANDA_CRUCIBLE.get()); - waterCrucibles.add(EItems.PALM_CRUCIBLE.get()); - waterCrucibles.add(EItems.WILLOW_CRUCIBLE.get()); - waterCrucibles.add(EItems.DEAD_CRUCIBLE.get()); - waterCrucibles.add(EItems.MAGIC_CRUCIBLE.get()); - waterCrucibles.add(EItems.UMBRAN_CRUCIBLE.get()); - } - if (ModList.get().isLoaded(ModIds.ARS_NOUVEAU)) { - sieves.add(EItems.ARCHWOOD_SIEVE.get()); - waterCrucibles.add(EItems.CASCADING_ARCHWOOD_CRUCIBLE.get()); - waterCrucibles.add(EItems.BLAZING_ARCHWOOD_CRUCIBLE.get()); - waterCrucibles.add(EItems.VEXING_ARCHWOOD_CRUCIBLE.get()); - waterCrucibles.add(EItems.FLOURISHING_ARCHWOOD_CRUCIBLE.get()); - } - if (ModList.get().isLoaded(ModIds.AETHER)) { - sieves.add(EItems.SKYROOT_SIEVE.get()); - waterCrucibles.add(EItems.SKYROOT_CRUCIBLE.get()); - waterCrucibles.add(EItems.GOLDEN_OAK_CRUCIBLE.get()); - } - if (ModList.get().isLoaded(ModIds.BLUE_SKIES)) { - sieves.add(EItems.BLUEBRIGHT_SIEVE.get()); - sieves.add(EItems.STARLIT_SIEVE.get()); - sieves.add(EItems.FROSTBRIGHT_SIEVE.get()); - sieves.add(EItems.COMET_SIEVE.get()); - sieves.add(EItems.LUNAR_SIEVE.get()); - sieves.add(EItems.DUSK_SIEVE.get()); - sieves.add(EItems.MAPLE_SIEVE.get()); - sieves.add(EItems.CRYSTALLIZED_SIEVE.get()); - lavaCrucibles.add(EItems.CRYSTALLIZED_CRUCIBLE.get()); - waterCrucibles.add(EItems.BLUEBRIGHT_CRUCIBLE.get()); - waterCrucibles.add(EItems.STARLIT_CRUCIBLE.get()); - waterCrucibles.add(EItems.FROSTBRIGHT_CRUCIBLE.get()); - waterCrucibles.add(EItems.COMET_CRUCIBLE.get()); - waterCrucibles.add(EItems.LUNAR_CRUCIBLE.get()); - waterCrucibles.add(EItems.DUSK_CRUCIBLE.get()); - waterCrucibles.add(EItems.MAPLE_CRUCIBLE.get()); - } + var barrels = CompatHelper.getAvailableBarrels(true); + var sieves = CompatHelper.getAvailableSieves(true); + var lavaCrucibles = CompatHelper.getAvailableLavaCrucibles(true); + var waterCrucibles = CompatHelper.getAvailableWaterCrucibles(true); + for (var barrel : barrels) { var stack = new ItemStack(barrel); registration.addRecipeCatalyst(stack, BARREL_COMPOST); @@ -250,6 +170,10 @@ public class ExDeorumJeiPlugin implements IModPlugin { if (RecipeUtil.isTagEmpty(EItemTags.ORES_TIN)) toRemove.add(new ItemStack(EItems.TIN_ORE_CHUNK.get())); if (RecipeUtil.isTagEmpty(EItemTags.ORES_ZINC)) toRemove.add(new ItemStack(EItems.ZINC_ORE_CHUNK.get())); if (RecipeUtil.isTagEmpty(EItemTags.ORES_IRIDIUM)) toRemove.add(new ItemStack(EItems.IRIDIUM_ORE_CHUNK.get())); + if (RecipeUtil.isTagEmpty(EItemTags.ORES_THORIUM)) toRemove.add(new ItemStack(EItems.THORIUM_ORE_CHUNK.get())); + if (RecipeUtil.isTagEmpty(EItemTags.ORES_MAGNESIUM)) toRemove.add(new ItemStack(EItems.MAGNESIUM_ORE_CHUNK.get())); + if (RecipeUtil.isTagEmpty(EItemTags.ORES_LITHIUM)) toRemove.add(new ItemStack(EItems.LITHIUM_ORE_CHUNK.get())); + if (RecipeUtil.isTagEmpty(EItemTags.ORES_BORON)) toRemove.add(new ItemStack(EItems.BORON_ORE_CHUNK.get())); if (!toRemove.isEmpty()) { registration.getIngredientManager().removeIngredientsAtRuntime(VanillaTypes.ITEM_STACK, toRemove); @@ -346,60 +270,4 @@ public class ExDeorumJeiPlugin implements IModPlugin { private static > void addRecipes(IRecipeRegistration registration, RecipeType category, Supplier> type) { registration.addRecipes(category, Objects.requireNonNull(Minecraft.getInstance().level).getRecipeManager().getAllRecipesFor(type.get())); } - - public static List getAvailableBarrels() { - // Vanilla barrels - List barrels = Lists.newArrayList(EItems.OAK_BARREL.get(), EItems.SPRUCE_BARREL.get(), EItems.BIRCH_BARREL.get(), EItems.JUNGLE_BARREL.get(), EItems.ACACIA_BARREL.get(), EItems.DARK_OAK_BARREL.get(), EItems.MANGROVE_BARREL.get(), EItems.CHERRY_BARREL.get(), EItems.BAMBOO_BARREL.get(), EItems.CRIMSON_BARREL.get(), EItems.WARPED_BARREL.get(), EItems.STONE_BARREL.get()); - ModList mods = ModList.get(); - - if (mods.isLoaded(ModIds.BIOMES_O_PLENTY)) { - barrels.add(EItems.FIR_BARREL.get()); - barrels.add(EItems.REDWOOD_BARREL.get()); - barrels.add(EItems.MAHOGANY_BARREL.get()); - barrels.add(EItems.JACARANDA_BARREL.get()); - barrels.add(EItems.PALM_BARREL.get()); - barrels.add(EItems.WILLOW_BARREL.get()); - barrels.add(EItems.DEAD_BARREL.get()); - barrels.add(EItems.MAGIC_BARREL.get()); - barrels.add(EItems.UMBRAN_BARREL.get()); - barrels.add(EItems.HELLBARK_BARREL.get()); - } - if (mods.isLoaded(ModIds.ARS_NOUVEAU)) { - barrels.add(EItems.ARCHWOOD_BARREL.get()); - } - if (mods.isLoaded(ModIds.AETHER)) { - barrels.add(EItems.SKYROOT_BARREL.get()); - } - if (mods.isLoaded(ModIds.BLUE_SKIES)) { - barrels.add(EItems.BLUEBRIGHT_BARREL.get()); - barrels.add(EItems.STARLIT_BARREL.get()); - barrels.add(EItems.FROSTBRIGHT_BARREL.get()); - barrels.add(EItems.COMET_BARREL.get()); - barrels.add(EItems.LUNAR_BARREL.get()); - barrels.add(EItems.DUSK_BARREL.get()); - barrels.add(EItems.MAPLE_BARREL.get()); - barrels.add(EItems.CRYSTALLIZED_BARREL.get()); - } - - return barrels; - } - - public static List getAvailableSieves() { - List sieves = Lists.newArrayList( - EItems.OAK_SIEVE.get(), - EItems.SPRUCE_SIEVE.get(), - EItems.BIRCH_SIEVE.get(), - EItems.JUNGLE_SIEVE.get(), - EItems.ACACIA_SIEVE.get(), - EItems.DARK_OAK_SIEVE.get(), - EItems.MANGROVE_SIEVE.get(), - EItems.CHERRY_SIEVE.get(), - EItems.BAMBOO_SIEVE.get(), - EItems.CRIMSON_SIEVE.get(), - EItems.WARPED_SIEVE.get(), - EItems.MECHANICAL_SIEVE.get() - ); - - return sieves; - } } diff --git a/src/main/java/thedarkcolour/exdeorum/compat/rei/ExDeorumReiPlugin.java b/src/main/java/thedarkcolour/exdeorum/compat/rei/ExDeorumReiPlugin.java new file mode 100644 index 00000000..b4cc7c79 --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/compat/rei/ExDeorumReiPlugin.java @@ -0,0 +1,53 @@ +/* + * Ex Deorum + * Copyright (c) 2024 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package thedarkcolour.exdeorum.compat.rei; + +import me.shedaniel.rei.api.client.entry.filtering.base.BasicFilteringRule; +import me.shedaniel.rei.api.client.plugins.REIClientPlugin; +import me.shedaniel.rei.api.common.entry.EntryIngredient; +import me.shedaniel.rei.api.common.entry.EntryStack; +import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; +import me.shedaniel.rei.forge.REIPluginClient; +import net.minecraft.world.item.ItemStack; +import thedarkcolour.exdeorum.compat.CompatHelper; + +@SuppressWarnings("UnstableApiUsage") +@REIPluginClient +public class ExDeorumReiPlugin implements REIClientPlugin { + @Override + public void registerBasicEntryFiltering(BasicFilteringRule rule) { + rule.hide(() -> { + var builder = EntryIngredient.builder(); + + for (var barrel : CompatHelper.getAvailableBarrels(false)) { + builder.add(EntryStack.of(VanillaEntryTypes.ITEM, new ItemStack(barrel))); + } + for (var sieve : CompatHelper.getAvailableSieves(false)) { + builder.add(EntryStack.of(VanillaEntryTypes.ITEM, new ItemStack(sieve))); + } + for (var crucible : CompatHelper.getAvailableLavaCrucibles(false)) { + builder.add(EntryStack.of(VanillaEntryTypes.ITEM, new ItemStack(crucible))); + } + for (var crucible : CompatHelper.getAvailableWaterCrucibles(false)) { + builder.add(EntryStack.of(VanillaEntryTypes.ITEM, new ItemStack(crucible))); + } + return builder.build(); + }); + } +} diff --git a/src/main/java/thedarkcolour/exdeorum/compat/rei/package-info.java b/src/main/java/thedarkcolour/exdeorum/compat/rei/package-info.java new file mode 100644 index 00000000..20fd902d --- /dev/null +++ b/src/main/java/thedarkcolour/exdeorum/compat/rei/package-info.java @@ -0,0 +1,21 @@ +/* + * Ex Deorum + * Copyright (c) 2024 thedarkcolour + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +@net.minecraft.MethodsReturnNonnullByDefault +@javax.annotation.ParametersAreNonnullByDefault +package thedarkcolour.exdeorum.compat.rei;