From bd89dd3c17d3cf20ccb5229f83b32581a981ca9f Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 30 Jul 2016 01:48:10 +0200 Subject: [PATCH] Add tooltip to grid filter with the filtered items --- .../inventory/ItemHandlerGridFilter.java | 4 ++++ .../inventory/ItemHandlerGridFilterInGrid.java | 11 +++-------- .../refinedstorage/item/ItemBlockController.java | 4 ++-- .../refinedstorage/item/ItemBlockStorage.java | 6 +++--- .../java/refinedstorage/item/ItemGridFilter.java | 12 ++++++++++++ .../java/refinedstorage/item/ItemPattern.java | 16 ++++++++-------- .../refinedstorage/item/ItemStorageDisk.java | 6 +++--- .../refinedstorage/item/ItemWirelessGrid.java | 10 +++++----- 8 files changed, 40 insertions(+), 29 deletions(-) diff --git a/src/main/java/refinedstorage/inventory/ItemHandlerGridFilter.java b/src/main/java/refinedstorage/inventory/ItemHandlerGridFilter.java index cc82bbd1e..dfd83bbfc 100755 --- a/src/main/java/refinedstorage/inventory/ItemHandlerGridFilter.java +++ b/src/main/java/refinedstorage/inventory/ItemHandlerGridFilter.java @@ -28,4 +28,8 @@ public class ItemHandlerGridFilter extends ItemStackHandler { TileBase.writeItems(this, 0, stack.getTagCompound()); } + + public ItemStack[] getFilteredItems() { + return stacks; + } } diff --git a/src/main/java/refinedstorage/inventory/ItemHandlerGridFilterInGrid.java b/src/main/java/refinedstorage/inventory/ItemHandlerGridFilterInGrid.java index 2312b4602..b51ab73b5 100755 --- a/src/main/java/refinedstorage/inventory/ItemHandlerGridFilterInGrid.java +++ b/src/main/java/refinedstorage/inventory/ItemHandlerGridFilterInGrid.java @@ -2,7 +2,6 @@ package refinedstorage.inventory; import net.minecraft.item.ItemStack; import refinedstorage.RefinedStorageItems; -import refinedstorage.tile.TileBase; import java.util.List; @@ -23,14 +22,10 @@ public class ItemHandlerGridFilterInGrid extends ItemHandlerBasic { ItemStack stack = getStackInSlot(slot); - if (stack != null && stack.hasTagCompound()) { - ItemHandlerBasic items = new ItemHandlerBasic(9 * 3); - - TileBase.readItems(items, 0, stack.getTagCompound()); - - for (int i = 0; i < items.getSlots(); ++i) { - ItemStack item = items.getStackInSlot(i); + if (stack != null) { + ItemHandlerGridFilter items = new ItemHandlerGridFilter(stack); + for (ItemStack item : items.getFilteredItems()) { if (item != null) { filteredItems.add(item); } diff --git a/src/main/java/refinedstorage/item/ItemBlockController.java b/src/main/java/refinedstorage/item/ItemBlockController.java index 2c192dbb0..c5595fd11 100755 --- a/src/main/java/refinedstorage/item/ItemBlockController.java +++ b/src/main/java/refinedstorage/item/ItemBlockController.java @@ -18,7 +18,7 @@ public class ItemBlockController extends ItemBlockBase { } @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { + public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean advanced) { if (stack.getMetadata() != EnumControllerType.CREATIVE.getId()) { int energyStored = 0; int energyCapacity = RefinedStorage.INSTANCE.controllerCapacity; @@ -33,7 +33,7 @@ public class ItemBlockController extends ItemBlockBase { } } - list.add(I18n.format("misc.refinedstorage:energy_stored", energyStored, energyCapacity)); + tooltip.add(I18n.format("misc.refinedstorage:energy_stored", energyStored, energyCapacity)); } } diff --git a/src/main/java/refinedstorage/item/ItemBlockStorage.java b/src/main/java/refinedstorage/item/ItemBlockStorage.java index c30000c81..8cb21a1a7 100755 --- a/src/main/java/refinedstorage/item/ItemBlockStorage.java +++ b/src/main/java/refinedstorage/item/ItemBlockStorage.java @@ -24,16 +24,16 @@ public class ItemBlockStorage extends ItemBlockBase { } @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { + public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean advanced) { EnumStorageType type = EnumStorageType.getById(stack.getMetadata()); if (type != null && isValid(stack)) { NBTTagCompound tag = stack.getTagCompound().getCompoundTag(TileStorage.NBT_STORAGE); if (type == EnumStorageType.TYPE_CREATIVE) { - list.add(I18n.format("misc.refinedstorage:storage.stored", NBTStorage.getStoredFromNBT(tag))); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored", NBTStorage.getStoredFromNBT(tag))); } else { - list.add(I18n.format("misc.refinedstorage:storage.stored_capacity", NBTStorage.getStoredFromNBT(tag), type.getCapacity())); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", NBTStorage.getStoredFromNBT(tag), type.getCapacity())); } } } diff --git a/src/main/java/refinedstorage/item/ItemGridFilter.java b/src/main/java/refinedstorage/item/ItemGridFilter.java index 015f1c320..f31452d49 100755 --- a/src/main/java/refinedstorage/item/ItemGridFilter.java +++ b/src/main/java/refinedstorage/item/ItemGridFilter.java @@ -9,6 +9,9 @@ import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageItems; +import refinedstorage.inventory.ItemHandlerGridFilter; + +import java.util.List; public class ItemGridFilter extends ItemBase { public ItemGridFilter() { @@ -31,4 +34,13 @@ public class ItemGridFilter extends ItemBase { return new ActionResult(EnumActionResult.PASS, stack); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean advanced) { + super.addInformation(stack, player, tooltip, advanced); + + ItemHandlerGridFilter items = new ItemHandlerGridFilter(stack); + + ItemPattern.combineItems(tooltip, items.getFilteredItems()); + } } diff --git a/src/main/java/refinedstorage/item/ItemPattern.java b/src/main/java/refinedstorage/item/ItemPattern.java index d392896f2..df3db4a88 100755 --- a/src/main/java/refinedstorage/item/ItemPattern.java +++ b/src/main/java/refinedstorage/item/ItemPattern.java @@ -30,25 +30,25 @@ public class ItemPattern extends ItemBase { } @Override - public void addInformation(ItemStack pattern, EntityPlayer player, List list, boolean b) { + public void addInformation(ItemStack pattern, EntityPlayer player, List tooltip, boolean advanced) { if (isValid(pattern)) { if (GuiScreen.isShiftKeyDown() || isProcessing(pattern)) { - list.add(TextFormatting.YELLOW + I18n.format("misc.refinedstorage:pattern.inputs") + TextFormatting.RESET); + tooltip.add(TextFormatting.YELLOW + I18n.format("misc.refinedstorage:pattern.inputs") + TextFormatting.RESET); - combineItems(list, getInputs(pattern)); + combineItems(tooltip, getInputs(pattern)); - list.add(TextFormatting.YELLOW + I18n.format("misc.refinedstorage:pattern.outputs") + TextFormatting.RESET); + tooltip.add(TextFormatting.YELLOW + I18n.format("misc.refinedstorage:pattern.outputs") + TextFormatting.RESET); } - combineItems(list, getOutputs(pattern)); + combineItems(tooltip, getOutputs(pattern)); } } - private void combineItems(List lines, ItemStack... stacks) { + public static void combineItems(List tooltip, ItemStack... stacks) { Set combinedIndices = new HashSet(); for (int i = 0; i < stacks.length; ++i) { - if (!combinedIndices.contains(i)) { + if (stacks[i] != null && !combinedIndices.contains(i)) { String data = stacks[i].getDisplayName(); int amount = stacks[i].stackSize; @@ -65,7 +65,7 @@ public class ItemPattern extends ItemBase { data += " (" + amount + "x)"; } - lines.add(data); + tooltip.add(data); } } } diff --git a/src/main/java/refinedstorage/item/ItemStorageDisk.java b/src/main/java/refinedstorage/item/ItemStorageDisk.java index 622fb1950..23ce83613 100755 --- a/src/main/java/refinedstorage/item/ItemStorageDisk.java +++ b/src/main/java/refinedstorage/item/ItemStorageDisk.java @@ -92,14 +92,14 @@ public class ItemStorageDisk extends ItemBase { } @Override - public void addInformation(ItemStack disk, EntityPlayer player, List list, boolean b) { + public void addInformation(ItemStack disk, EntityPlayer player, List tooltip, boolean advanced) { if (NBTStorage.isValid(disk)) { int capacity = EnumStorageType.getById(disk.getItemDamage()).getCapacity(); if (capacity == -1) { - list.add(I18n.format("misc.refinedstorage:storage.stored", NBTStorage.getStoredFromNBT(disk.getTagCompound()))); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored", NBTStorage.getStoredFromNBT(disk.getTagCompound()))); } else { - list.add(I18n.format("misc.refinedstorage:storage.stored_capacity", NBTStorage.getStoredFromNBT(disk.getTagCompound()), capacity)); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", NBTStorage.getStoredFromNBT(disk.getTagCompound()), capacity)); } } } diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 84d08bc0f..b4765380f 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -106,15 +106,15 @@ public class ItemWirelessGrid extends ItemEnergyContainer implements ISpecialEle } @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { + public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean advanced) { if (stack.getItemDamage() != TYPE_CREATIVE) { - list.add(I18n.format("misc.refinedstorage:energy_stored", getEnergyStored(stack), getMaxEnergyStored(stack))); + tooltip.add(I18n.format("misc.refinedstorage:energy_stored", getEnergyStored(stack), getMaxEnergyStored(stack))); } if (hasValidNBT(stack)) { - list.add(I18n.format("misc.refinedstorage:wireless_grid.tooltip.0", getX(stack))); - list.add(I18n.format("misc.refinedstorage:wireless_grid.tooltip.1", getY(stack))); - list.add(I18n.format("misc.refinedstorage:wireless_grid.tooltip.2", getZ(stack))); + tooltip.add(I18n.format("misc.refinedstorage:wireless_grid.tooltip.0", getX(stack))); + tooltip.add(I18n.format("misc.refinedstorage:wireless_grid.tooltip.1", getY(stack))); + tooltip.add(I18n.format("misc.refinedstorage:wireless_grid.tooltip.2", getZ(stack))); } }