From 40dbc772f7cf306ab459448e5fa7003a0d569f62 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Tue, 7 Jun 2016 23:30:12 +0200 Subject: [PATCH] Improve IStorage API a bit --- .../refinedstorage/api/storage/IStorage.java | 10 +++++----- .../refinedstorage/api/storage/NBTStorage.java | 18 +++++++++--------- .../autocrafting/task/BasicCraftingTask.java | 6 +++--- .../task/ProcessingCraftingTask.java | 2 +- .../network/MessageGridCraftingClear.java | 2 +- .../network/MessageGridCraftingPush.java | 2 +- .../refinedstorage/tile/TileDestructor.java | 2 +- .../refinedstorage/tile/TileDiskDrive.java | 4 ++-- .../java/refinedstorage/tile/TileExporter.java | 2 +- .../java/refinedstorage/tile/TileImporter.java | 4 ++-- .../refinedstorage/tile/TileInterface.java | 8 +++----- .../java/refinedstorage/tile/TileStorage.java | 4 ++-- .../tile/controller/StorageHandler.java | 8 ++++---- .../tile/controller/TileController.java | 6 ++++-- .../tile/externalstorage/DrawerStorage.java | 14 +++++++------- .../externalstorage/ItemHandlerStorage.java | 4 ++-- .../refinedstorage/tile/grid/TileGrid.java | 4 ++-- 17 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/main/java/refinedstorage/api/storage/IStorage.java b/src/main/java/refinedstorage/api/storage/IStorage.java index 559ae0f45..7cd710d99 100755 --- a/src/main/java/refinedstorage/api/storage/IStorage.java +++ b/src/main/java/refinedstorage/api/storage/IStorage.java @@ -20,20 +20,20 @@ public interface IStorage { /** * Pushes an item to this storage. * - * @param stack The stack to push, do NOT modify this stack + * @param stack The stack prototype to push, do NOT modify + * @param size The amount of that prototype that has to be pushed * @param simulate If we are simulating * @return null if the push was successful, or an ItemStack with the remainder - * @todo make it push(stack, size, simulate) */ - ItemStack push(ItemStack stack, boolean simulate); + ItemStack push(ItemStack stack, int size, boolean simulate); /** * Takes an item from storage. * If the stack we found in the system is smaller then the requested size, return the stack anyway. * For example: this function is called for dirt (64x) while there is only dirt (32x), return the dirt (32x) anyway. * - * @param stack A prototype of the stack to push, do NOT modify this stack - * @param size The amount of that prototype we're taking + * @param stack A prototype of the stack to take, do NOT modify + * @param size The amount of that prototype that has to be taken * @param flags On what we are comparing to take the item, see {@link CompareFlags} * @return null if we didn't take anything, or an ItemStack with the take result */ diff --git a/src/main/java/refinedstorage/api/storage/NBTStorage.java b/src/main/java/refinedstorage/api/storage/NBTStorage.java index d2119278c..bae9cce6d 100755 --- a/src/main/java/refinedstorage/api/storage/NBTStorage.java +++ b/src/main/java/refinedstorage/api/storage/NBTStorage.java @@ -104,14 +104,14 @@ public abstract class NBTStorage implements IStorage { } @Override - public ItemStack push(ItemStack stack, boolean simulate) { + public ItemStack push(ItemStack stack, int size, boolean simulate) { for (ItemStack otherStack : stacks) { if (RefinedStorageUtils.compareStackNoQuantity(otherStack, stack)) { if (!simulate) { markDirty(); } - if (getStored() + stack.stackSize > getCapacity()) { + if (getStored() + size > getCapacity()) { int remainingSpace = getCapacity() - getStored(); if (remainingSpace <= 0) { @@ -124,12 +124,12 @@ public abstract class NBTStorage implements IStorage { otherStack.stackSize += remainingSpace; } - return ItemHandlerHelper.copyStackWithSize(otherStack, stack.stackSize - remainingSpace); + return ItemHandlerHelper.copyStackWithSize(otherStack, size - remainingSpace); } else { if (!simulate) { - tag.setInteger(NBT_STORED, getStored() + stack.stackSize); + tag.setInteger(NBT_STORED, getStored() + size); - otherStack.stackSize += stack.stackSize; + otherStack.stackSize += size; } return null; @@ -141,7 +141,7 @@ public abstract class NBTStorage implements IStorage { markDirty(); } - if (getStored() + stack.stackSize > getCapacity()) { + if (getStored() + size > getCapacity()) { int remainingSpace = getCapacity() - getStored(); if (remainingSpace <= 0) { @@ -154,12 +154,12 @@ public abstract class NBTStorage implements IStorage { stacks.add(ItemHandlerHelper.copyStackWithSize(stack, remainingSpace)); } - return ItemHandlerHelper.copyStackWithSize(stack, stack.stackSize - remainingSpace); + return ItemHandlerHelper.copyStackWithSize(stack, size - remainingSpace); } else { - tag.setInteger(NBT_STORED, getStored() + stack.stackSize); + tag.setInteger(NBT_STORED, getStored() + size); if (!simulate) { - stacks.add(stack.copy()); + stacks.add(ItemHandlerHelper.copyStackWithSize(stack, size)); } return null; diff --git a/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java b/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java index 0762209aa..bc3ec70e1 100755 --- a/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java +++ b/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java @@ -93,12 +93,12 @@ public class BasicCraftingTask implements ICraftingTask { @Override public void onDone(TileController controller) { for (ItemStack output : pattern.getOutputs()) { - controller.push(output, false); + controller.push(output, output.stackSize, false); } if (pattern.getByproducts() != null) { for (ItemStack byproduct : pattern.getByproducts()) { - controller.push(byproduct, false); + controller.push(byproduct, byproduct.stackSize, false); } } } @@ -107,7 +107,7 @@ public class BasicCraftingTask implements ICraftingTask { @Override public void onCancelled(TileController controller) { for (ItemStack took : itemsTook) { - controller.push(took, false); + controller.push(took, took.stackSize, false); } } diff --git a/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java b/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java index 6f16f1b3a..45b559caf 100755 --- a/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java +++ b/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java @@ -61,7 +61,7 @@ public class ProcessingCraftingTask implements ICraftingTask { inserted[i] = true; } else { - controller.push(took, false); + controller.push(took, took.stackSize, false); } } else if (!childTasks[i]) { CraftingPattern pattern = controller.getPattern(input); diff --git a/src/main/java/refinedstorage/network/MessageGridCraftingClear.java b/src/main/java/refinedstorage/network/MessageGridCraftingClear.java index 62c3ba0a9..1247f200f 100755 --- a/src/main/java/refinedstorage/network/MessageGridCraftingClear.java +++ b/src/main/java/refinedstorage/network/MessageGridCraftingClear.java @@ -50,7 +50,7 @@ public class MessageGridCraftingClear extends MessageHandlerPlayerToServer drawer.getMaxCapacity(stack)) { + if (getStored() + size > drawer.getMaxCapacity(stack)) { int remainingSpace = getCapacity() - getStored(); if (remainingSpace <= 0) { @@ -44,16 +44,16 @@ public class DrawerStorage extends ExternalStorage { drawer.setStoredItemCount(drawer.getStoredItemCount() + remainingSpace); } - return ItemHandlerHelper.copyStackWithSize(stack, stack.stackSize - remainingSpace); + return ItemHandlerHelper.copyStackWithSize(stack, size - remainingSpace); } else { if (!simulate) { - drawer.setStoredItemCount(drawer.getStoredItemCount() + stack.stackSize); + drawer.setStoredItemCount(drawer.getStoredItemCount() + size); } return null; } } else { - if (getStored() + stack.stackSize > drawer.getMaxCapacity(stack)) { + if (getStored() + size > drawer.getMaxCapacity(stack)) { int remainingSpace = getCapacity() - getStored(); if (remainingSpace <= 0) { @@ -64,10 +64,10 @@ public class DrawerStorage extends ExternalStorage { drawer.setStoredItem(stack, remainingSpace); } - return ItemHandlerHelper.copyStackWithSize(stack, stack.stackSize - remainingSpace); + return ItemHandlerHelper.copyStackWithSize(stack, size - remainingSpace); } else { if (!simulate) { - drawer.setStoredItem(stack, stack.stackSize); + drawer.setStoredItem(stack, size); } return null; diff --git a/src/main/java/refinedstorage/tile/externalstorage/ItemHandlerStorage.java b/src/main/java/refinedstorage/tile/externalstorage/ItemHandlerStorage.java index a6c24e82e..6bff2b7dd 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/ItemHandlerStorage.java +++ b/src/main/java/refinedstorage/tile/externalstorage/ItemHandlerStorage.java @@ -32,9 +32,9 @@ public class ItemHandlerStorage extends ExternalStorage { } @Override - public ItemStack push(ItemStack stack, boolean simulate) { + public ItemStack push(ItemStack stack, int size, boolean simulate) { if (ModeFilter.respectsMode(externalStorage.getFilters(), externalStorage, externalStorage.getCompare(), stack)) { - return ItemHandlerHelper.insertItem(handler, stack, simulate); + return ItemHandlerHelper.insertItem(handler, ItemHandlerHelper.copyStackWithSize(stack, size), simulate); } return stack; diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index 3477e0c80..7f387ca91 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -228,10 +228,10 @@ public class TileGrid extends TileMachine implements IGrid { if (slot != null) { if (getType() == EnumGridType.CRAFTING) { - if (controller.push(slot, true) != null) { + if (controller.push(slot, slot.stackSize, true) != null) { return; } else { - controller.push(slot, false); + controller.push(slot, slot.stackSize, false); } }