From 8d29dc389a20b3825b1fd7399c744d4dca3562f1 Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Tue, 18 Oct 2016 21:30:45 +0200 Subject: [PATCH 1/2] fix NPE due to IComparer mismatch during calculation --- .../api/autocrafting/ICraftingPattern.java | 14 +++++++++++++- .../apiimpl/autocrafting/CraftingPattern.java | 4 ++-- .../apiimpl/autocrafting/task/CraftingTask.java | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/refinedstorage/api/autocrafting/ICraftingPattern.java b/src/main/java/refinedstorage/api/autocrafting/ICraftingPattern.java index a31c86806..5ced8ea29 100755 --- a/src/main/java/refinedstorage/api/autocrafting/ICraftingPattern.java +++ b/src/main/java/refinedstorage/api/autocrafting/ICraftingPattern.java @@ -1,6 +1,7 @@ package refinedstorage.api.autocrafting; import net.minecraft.item.ItemStack; +import refinedstorage.api.util.IComparer; import java.util.List; @@ -71,5 +72,16 @@ public interface ICraftingPattern { * @param requested the item requested * @return the quantity */ - int getQuantityPerRequest(ItemStack requested); + default int getQuantityPerRequest(ItemStack requested) { + return getQuantityPerRequest(requested, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT); + } + + /** + * Returns the quantity of items that this crafting task yields per request. + * + * @param requested the item requested + * @param compare the {@link refinedstorage.api.util.IComparer} flags + * @return the quantity + */ + int getQuantityPerRequest(ItemStack requested, int compare); } diff --git a/src/main/java/refinedstorage/apiimpl/autocrafting/CraftingPattern.java b/src/main/java/refinedstorage/apiimpl/autocrafting/CraftingPattern.java index 5730b8a3f..e54d105b8 100755 --- a/src/main/java/refinedstorage/apiimpl/autocrafting/CraftingPattern.java +++ b/src/main/java/refinedstorage/apiimpl/autocrafting/CraftingPattern.java @@ -150,11 +150,11 @@ public class CraftingPattern implements ICraftingPattern { } @Override - public int getQuantityPerRequest(ItemStack requested) { + public int getQuantityPerRequest(ItemStack requested, int compare) { int quantity = 0; for (ItemStack output : outputs) { - if (API.instance().getComparer().isEqualNoQuantity(requested, output)) { + if (API.instance().getComparer().isEqual(requested, output, compare)) { quantity += output.stackSize; if (!ItemPattern.isProcessing(stack)) { diff --git a/src/main/java/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java b/src/main/java/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java index 719290af5..c58a56989 100755 --- a/src/main/java/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java +++ b/src/main/java/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java @@ -132,7 +132,7 @@ public class CraftingTask implements ICraftingTask { } else { ICraftingPattern inputPattern = network.getPattern(input, compare); if (inputPattern != null) { - int craftQuantity = Math.min(inputPattern.getQuantityPerRequest(input), input.stackSize); + int craftQuantity = Math.min(inputPattern.getQuantityPerRequest(input, compare), input.stackSize); ItemStack inputCrafted = ItemHandlerHelper.copyStackWithSize(input, craftQuantity); toCraft.add(inputCrafted.copy()); actualInputs.add(inputCrafted.copy()); From 1c94e3f9b5b37b2c1b09d48d89f160ab6ff5ec07 Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Tue, 18 Oct 2016 21:32:59 +0200 Subject: [PATCH 2/2] enable depth when drawing items in the preview --- src/main/java/refinedstorage/gui/GuiCraftingPreview.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/refinedstorage/gui/GuiCraftingPreview.java b/src/main/java/refinedstorage/gui/GuiCraftingPreview.java index 21dfabd64..805250398 100755 --- a/src/main/java/refinedstorage/gui/GuiCraftingPreview.java +++ b/src/main/java/refinedstorage/gui/GuiCraftingPreview.java @@ -125,6 +125,7 @@ public class GuiCraftingPreview extends GuiBase { int slot = scrollbar.getOffset() * 2; RenderHelper.enableGUIStandardItemLighting(); + GlStateManager.enableDepth(); ItemStack hoveringStack = null; FluidStack hoveringFluid = null;