From 688231cfc8db5d94d97e815951c669a9de682f0a Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Thu, 18 Jan 2018 21:18:12 +0100 Subject: [PATCH] Fixed not being able to extract half a stack of items with max stack size 1 in Grid when using right click, fixes #1626 --- CHANGELOG.md | 1 + .../apiimpl/network/grid/handler/ItemGridHandler.java | 6 +++++- .../network/grid/handler/ItemGridHandlerPortable.java | 6 +++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0eb8867b4..fae97249d 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### 1.5.32 - Added Spanish translation (Samuelrock) - Fixed issue where the Pattern Grid can only overwrite patterns when blank ones are present (ineternet) +- Fixed not being able to extract half a stack of items with max stack size 1 in Grid when using right click (raoulvdberge) - Changed stack quantity of craftable items from 1 to 0 to fix Quantity Sorting (ineternet) ### 1.5.31 diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java index 997fae302..8b90ab9d4 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java @@ -58,7 +58,11 @@ public class ItemGridHandler implements IItemGridHandler { if ((flags & EXTRACT_HALF) == EXTRACT_HALF && itemSize > 1) { size = itemSize / 2; - if (size > maxItemSize / 2) { + // Rationale for this check: + // If we have 32 buckets, and we want to extract half, we expect/need to get 8 (max stack size 16 / 2). + // Without this check, we would get 16 (total stack size 32 / 2). + // Max item size also can't be 1. Otherwise, if we want to extract half of 8 lava buckets, we would get size 0 (1 / 2). + if (size > maxItemSize / 2 && maxItemSize != 1) { size = maxItemSize / 2; } } else if (single) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java index c8a7c15fc..98884ed05 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java @@ -58,7 +58,11 @@ public class ItemGridHandlerPortable implements IItemGridHandler { if ((flags & EXTRACT_HALF) == EXTRACT_HALF && itemSize > 1) { size = itemSize / 2; - if (size > maxItemSize / 2) { + // Rationale for this check: + // If we have 32 buckets, and we want to extract half, we expect/need to get 8 (max stack size 16 / 2). + // Without this check, we would get 16 (total stack size 32 / 2). + // Max item size also can't be 1. Otherwise, if we want to extract half of 8 lava buckets, we would get size 0 (1 / 2). + if (size > maxItemSize / 2 && maxItemSize != 1) { size = maxItemSize / 2; } } else if (single) {