From 14a05d561c368d611b9bd150cc891fe6c7e38b51 Mon Sep 17 00:00:00 2001
From: thedarkcolour <30441001+thedarkcolour@users.noreply.github.com>
Date: Wed, 7 Feb 2024 13:39:11 -0800
Subject: [PATCH] Close #51
---
build.gradle | 7 +-
.../exdeorum/compat/CompatHelper.java | 178 ++++++++++++++++++
.../compat/jei/ExDeorumJeiPlugin.java | 152 +--------------
.../compat/rei/ExDeorumReiPlugin.java | 53 ++++++
.../exdeorum/compat/rei/package-info.java | 21 +++
5 files changed, 266 insertions(+), 145 deletions(-)
create mode 100644 src/main/java/thedarkcolour/exdeorum/compat/CompatHelper.java
create mode 100644 src/main/java/thedarkcolour/exdeorum/compat/rei/ExDeorumReiPlugin.java
create mode 100644 src/main/java/thedarkcolour/exdeorum/compat/rei/package-info.java
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;