From a2ed4d7a4c5c13edd1ab8a51ad1d1978d6f090fc Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Tue, 22 Mar 2016 17:56:26 +0100 Subject: [PATCH] Implement getStored and getCapacity. --- .../java/refinedstorage/tile/TileDrive.java | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/main/java/refinedstorage/tile/TileDrive.java b/src/main/java/refinedstorage/tile/TileDrive.java index 897e92a5e..967eecd9b 100644 --- a/src/main/java/refinedstorage/tile/TileDrive.java +++ b/src/main/java/refinedstorage/tile/TileDrive.java @@ -14,6 +14,7 @@ import refinedstorage.storage.CellStorage; import refinedstorage.storage.IStorage; import refinedstorage.storage.IStorageGui; import refinedstorage.storage.IStorageProvider; +import refinedstorage.storage.NBTStorage; import refinedstorage.tile.settings.ICompareSetting; import refinedstorage.tile.settings.IModeSetting; import refinedstorage.tile.settings.IRedstoneModeSetting; @@ -223,13 +224,44 @@ public class TileDrive extends TileMachine implements IStorageProvider, IStorage @Override public int getStored() { - return 0; + int stored = 0; + + for (int i = 0; i < getSizeInventory(); ++i) + { + ItemStack stack = getStackInSlot(i); + + if (stack != null) + { + stored += NBTStorage.getStored(stack.getTagCompound()); + } + } + + return stored; } @Override public int getCapacity() { - return 0; + int capacity = 0; + + for (int i = 0; i < getSizeInventory(); ++i) + { + ItemStack stack = getStackInSlot(i); + + if (stack != null) + { + int cellCapacity = CellStorage.getCapacity(stack); + + if (cellCapacity == -1) + { + return -1; + } + + capacity += cellCapacity; + } + } + + return capacity; } @Override