From 709b75a04386f2b29f194d73dee0edae1d2fb8f4 Mon Sep 17 00:00:00 2001 From: Shadows_of_Fire Date: Sun, 24 Jun 2018 14:35:50 -0400 Subject: [PATCH] Fix empowerer; Closes #1130 --- .../api/recipe/EmpowererRecipe.java | 15 ++++++++++++++- .../mod/tile/TileEntityEmpowerer.java | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/recipe/EmpowererRecipe.java b/src/main/java/de/ellpeck/actuallyadditions/api/recipe/EmpowererRecipe.java index f62199321..df6054e67 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/recipe/EmpowererRecipe.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/recipe/EmpowererRecipe.java @@ -10,6 +10,9 @@ package de.ellpeck.actuallyadditions.api.recipe; +import java.util.ArrayList; +import java.util.List; + import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.Ingredient; @@ -45,7 +48,17 @@ public class EmpowererRecipe { } public boolean matches(ItemStack base, ItemStack stand1, ItemStack stand2, ItemStack stand3, ItemStack stand4) { - return input.apply(base) && modifier1.apply(stand1) && modifier2.apply(stand2) && modifier3.apply(stand3) && modifier4.apply(stand4); + if (!input.apply(base)) return false; + List matches = new ArrayList<>(); + ItemStack[] stacks = { stand1, stand2, stand3, stand4 }; + for (ItemStack s : stacks) { + if (!matches.contains(modifier1) && modifier1.apply(s)) matches.add(modifier1); + else if (!matches.contains(modifier2) && modifier2.apply(s)) matches.add(modifier2); + else if (!matches.contains(modifier3) && modifier3.apply(s)) matches.add(modifier3); + else if (!matches.contains(modifier4) && modifier4.apply(s)) matches.add(modifier4); + } + + return matches.size() == 4; } public Ingredient getInput() { diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEmpowerer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEmpowerer.java index 41781b076..257800579 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEmpowerer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEmpowerer.java @@ -81,6 +81,7 @@ public class TileEntityEmpowerer extends TileEntityInventoryBase { if (done) { stand.inv.getStackInSlot(0).shrink(1); + stand.markDirty(); } }