aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/RecipeHelper.java')
-rw-r--r--src/main/java/me/shedaniel/rei/api/RecipeHelper.java35
1 files changed, 32 insertions, 3 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
index 3ef78f603..9c66a6eb4 100644
--- a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
+++ b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java
@@ -7,12 +7,14 @@ package me.shedaniel.rei.api;
import me.shedaniel.math.api.Rectangle;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
+import me.shedaniel.rei.api.annotations.ToBeRemoved;
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
import net.minecraft.item.ItemStack;
import net.minecraft.recipe.Recipe;
import net.minecraft.recipe.RecipeManager;
import net.minecraft.util.Identifier;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -50,7 +52,22 @@ public interface RecipeHelper {
* @param inventoryItems the materials
* @return the list of craftable items
*/
- List<ItemStack> findCraftableByItems(List<ItemStack> inventoryItems);
+ default List<ItemStack> findCraftableByItems(List<ItemStack> inventoryItems) {
+ List<ItemStack> itemStacks = new ArrayList<>();
+ for (EntryStack item : findCraftableEntriesByItems(inventoryItems)) {
+ if (item.getItemStack() != null)
+ itemStacks.add(item.getItemStack());
+ }
+ return itemStacks;
+ }
+
+ /**
+ * Gets all craftable items from materials.
+ *
+ * @param inventoryItems the materials
+ * @return the list of craftable entries
+ */
+ List<EntryStack> findCraftableEntriesByItems(List<ItemStack> inventoryItems);
/**
* Registers a category
@@ -91,7 +108,13 @@ public interface RecipeHelper {
* @param stack the stack to be crafted
* @return the map of recipes
*/
- Map<RecipeCategory<?>, List<RecipeDisplay>> getRecipesFor(ItemStack stack);
+ Map<RecipeCategory<?>, List<RecipeDisplay>> getRecipesFor(EntryStack stack);
+
+ @ToBeRemoved
+ @Deprecated
+ default Map<RecipeCategory<?>, List<RecipeDisplay>> getRecipesFor(ItemStack stack) {
+ return getRecipesFor(EntryStack.create(stack));
+ }
RecipeCategory getCategory(Identifier identifier);
@@ -115,7 +138,13 @@ public interface RecipeHelper {
* @param stack the stack to be used
* @return the map of recipes
*/
- Map<RecipeCategory<?>, List<RecipeDisplay>> getUsagesFor(ItemStack stack);
+ Map<RecipeCategory<?>, List<RecipeDisplay>> getUsagesFor(EntryStack stack);
+
+ @ToBeRemoved
+ @Deprecated
+ default Map<RecipeCategory<?>, List<RecipeDisplay>> getUsagesFor(ItemStack stack) {
+ return getUsagesFor(EntryStack.create(stack));
+ }
/**
* Gets the optional of the speed crafting button area from a category