From 4ab17cd1d282dc23d2a4afdc5f300227be1fc5fb Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 9 Jan 2019 14:28:42 +0800 Subject: Basic Craftable Only --- .../java/me/shedaniel/impl/REIRecipeManager.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/main/java/me/shedaniel/impl') diff --git a/src/main/java/me/shedaniel/impl/REIRecipeManager.java b/src/main/java/me/shedaniel/impl/REIRecipeManager.java index fbecbd6ac..2f5ed50c6 100755 --- a/src/main/java/me/shedaniel/impl/REIRecipeManager.java +++ b/src/main/java/me/shedaniel/impl/REIRecipeManager.java @@ -16,6 +16,7 @@ import java.awt.*; import java.util.*; import java.util.List; import java.util.function.Function; +import java.util.stream.Collectors; /** * Created by James on 8/7/2018. @@ -137,6 +138,7 @@ public class REIRecipeManager implements IRecipeManager { return categories; } + @Deprecated public List findUsageForItems(List types) { List recipes = new ArrayList<>(); types.forEach(item -> { @@ -146,6 +148,30 @@ public class REIRecipeManager implements IRecipeManager { return recipes; } + public List findCraftableByItems(List types) { + List craftables = new ArrayList<>(); + for(List value : recipeList.values()) + for(IRecipe iRecipe : value) { + int slotsCraftable = 0; + for(List slot : ((List>) iRecipe.getRecipeRequiredInput())) { + boolean slotDone = false; + for(ItemStack possibleType : types) { + for(ItemStack slotPossible : slot) + if (ItemStack.areEqualIgnoreTags(slotPossible, possibleType)) { + slotsCraftable++; + slotDone = true; + break; + } + if (slotDone) + break; + } + } + if (slotsCraftable == iRecipe.getRecipeRequiredInput().size()) + craftables.addAll((List) iRecipe.getOutput()); + } + return craftables.stream().distinct().collect(Collectors.toList()); + } + public List getAdatapersForOutput(ItemStack stack) { return null; } -- cgit