From 5759d9276d25bf8d00ea36e6b30b1d666f211bb8 Mon Sep 17 00:00:00 2001 From: geldorn Date: Tue, 11 Oct 2016 20:00:14 +0200 Subject: [PATCH 1/2] Fix for void upgraded storage drawers using the previous developed void handling. (#454) * Fixed void storage drawers and simplified storage drawer handling code. * Coding style correction. --- .../externalstorage/ItemStorageDrawer.java | 55 +++++++------------ 1 file changed, 19 insertions(+), 36 deletions(-) diff --git a/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDrawer.java b/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDrawer.java index 0e114aff4..8a6a39bfd 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDrawer.java +++ b/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDrawer.java @@ -41,47 +41,30 @@ public class ItemStorageDrawer extends ItemStorageExternal { @Override public ItemStack insertItem(ItemStack stack, int size, boolean simulate) { if (IFilterable.canTake(externalStorage.getItemFilters(), externalStorage.getMode(), externalStorage.getCompare(), stack) && drawer.canItemBeStored(stack)) { - if (!drawer.isEmpty()) { - if (getStored() + size > drawer.getMaxCapacity(stack)) { - int remainingSpace = getCapacity() - getStored(); + int stored = drawer.getStoredItemCount(); + int remainingSpace = drawer.getMaxCapacity(stack) - stored; - if (remainingSpace <= 0) { - return isVoidable() ? null : ItemHandlerHelper.copyStackWithSize(stack, size); - } + int inserted = remainingSpace > size ? size : (remainingSpace <= 0) ? 0 : remainingSpace; - if (!simulate) { - drawer.setStoredItemCount(drawer.getStoredItemCount() + remainingSpace); - } - - return isVoidable() ? null : ItemHandlerHelper.copyStackWithSize(stack, size - remainingSpace); + if (!simulate && remainingSpace > 0) { + if (drawer.isEmpty()) { + drawer.setStoredItemRedir(stack, inserted); } else { - if (!simulate) { - drawer.setStoredItemCount(drawer.getStoredItemCount() + size); - } - - return null; - } - } else { - if (getStored() + size > drawer.getMaxCapacity(stack)) { - int remainingSpace = getCapacity() - getStored(); - - if (remainingSpace <= 0) { - return isVoidable() ? null : ItemHandlerHelper.copyStackWithSize(stack, size); - } - - if (!simulate) { - drawer.setStoredItemRedir(stack, remainingSpace); - } - - return isVoidable() ? null : ItemHandlerHelper.copyStackWithSize(stack, size - remainingSpace); - } else { - if (!simulate) { - drawer.setStoredItemRedir(stack, size); - } - - return null; + drawer.setStoredItemCount(stored + inserted); } } + + if (inserted == size) { + return null; + } + + int returnSize = size - inserted; + + if (isVoidable()) { + returnSize = -returnSize; + } + + return ItemHandlerHelper.copyStackWithSize(stack, returnSize); } return ItemHandlerHelper.copyStackWithSize(stack, size); From f8d3bea7a890e69fb2f8401d55cc8292ae3665ce Mon Sep 17 00:00:00 2001 From: Raoul Date: Tue, 11 Oct 2016 20:01:21 +0200 Subject: [PATCH 2/2] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27c465201..b08842406 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ - Fixed items with colored name being uncolored in Grid (raoulvdberge) - Fixed fluid rendering bugging out side buttons (raoulvdberge) - Fixed item count going negative in some cases (raoulvdberge) +- Fixed Storage Drawer quantities not updating properly on Void Drawers (geldorn) - Updated Storage Drawers API (raoulvdberge) ### 1.1.3