From 8de9dc8838c44236d4b9c096052e44c776fba146 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Sat, 26 May 2018 14:14:36 +0200 Subject: [PATCH] You can no longer put a Filter in filter slots to gain additional filter slots --- CHANGELOG.md | 1 + .../network/node/NetworkNodeExporter.java | 48 +++++-------------- .../refinedstorage/item/ItemFilter.java | 15 ------ .../tile/config/IFilterable.java | 22 ++------- 4 files changed, 17 insertions(+), 69 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f9ddd7cb..042ee8776 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Removed MCMultiPart integration (raoulvdberge) - Removed Project E integration (raoulvdberge) - Removed Storage Drawers integration (you can still attach an External Storage to drawers, though) (raoulvdberge) +- You can no longer put a Filter in filter slots to gain additional filter slots (raoulvdberge) - Updated Russian translation (kellixon) ### 1.5.34 diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java index f0630f7e4..71ba1d6ba 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java @@ -1,13 +1,11 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; -import com.raoulvdberge.refinedstorage.item.ItemFilter; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.TileExporter; import com.raoulvdberge.refinedstorage.tile.config.IComparable; @@ -60,14 +58,20 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy ItemStack slot = itemFilters.getStackInSlot(i); if (!slot.isEmpty()) { - if (slot.getItem() == RSItems.FILTER) { - for (ItemStack slotInFilter : ItemFilter.getFilterItemsFromCache(slot)) { - if (!slotInFilter.isEmpty()) { - doExport(handler, slotInFilter); - } + int stackSize = upgrades.getItemInteractCount(); + + ItemStack took = network.extractItem(slot, Math.min(slot.getMaxStackSize(), stackSize), compare, true); + + if (took == null) { + if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { + network.getCraftingManager().schedule(slot, stackSize, compare); + } + } else if (ItemHandlerHelper.insertItem(handler, took, true).isEmpty()) { + took = network.extractItem(slot, Math.min(slot.getMaxStackSize(), stackSize), compare, false); + + if (took != null) { + ItemHandlerHelper.insertItem(handler, took, false); } - } else { - doExport(handler, slot); } } } @@ -104,24 +108,6 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy } } - private void doExport(IItemHandler handler, ItemStack slot) { - int stackSize = upgrades.getItemInteractCount(); - - ItemStack took = network.extractItem(slot, Math.min(slot.getMaxStackSize(), stackSize), compare, true); - - if (took == null) { - if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { - network.getCraftingManager().schedule(slot, stackSize, compare); - } - } else if (ItemHandlerHelper.insertItem(handler, took, true).isEmpty()) { - took = network.extractItem(slot, Math.min(slot.getMaxStackSize(), stackSize), compare, false); - - if (took != null) { - ItemHandlerHelper.insertItem(handler, took, false); - } - } - } - @Override public int getCompare() { return compare; @@ -205,14 +191,6 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy markDirty(); } - public ItemHandlerBase getItemFilters() { - return itemFilters; - } - - public ItemHandlerFluid getFluidFilters() { - return fluidFilters; - } - @Override public IItemHandler getFilterInventory() { return getType() == IType.ITEMS ? itemFilters : fluidFilters; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFilter.java index 164b06457..0dafe8211 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFilter.java @@ -14,14 +14,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; import javax.annotation.Nullable; -import java.util.HashMap; import java.util.List; -import java.util.Map; public class ItemFilter extends ItemBase { private static final String NBT_COMPARE = "Compare"; @@ -30,24 +27,12 @@ public class ItemFilter extends ItemBase { private static final String NBT_NAME = "Name"; private static final String NBT_ICON = "Icon"; - private static Map> FILTER_CACHE = new HashMap<>(); - public ItemFilter() { super("filter"); setMaxStackSize(1); } - public static NonNullList getFilterItemsFromCache(ItemStack stack) { - if (!FILTER_CACHE.containsKey(stack)) { - ItemHandlerFilterItems items = new ItemHandlerFilterItems(stack); - - FILTER_CACHE.put(stack, items.getFilteredItems()); - } - - return FILTER_CACHE.get(stack); - } - @Override public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { ItemStack stack = player.getHeldItem(hand); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java index 6cbefb696..12e6ece1d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java @@ -1,10 +1,8 @@ package com.raoulvdberge.refinedstorage.tile.config; -import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; -import com.raoulvdberge.refinedstorage.item.ItemFilter; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.item.ItemStack; import net.minecraft.network.datasync.DataSerializers; @@ -35,13 +33,7 @@ public interface IFilterable { if (!slot.isEmpty()) { slots++; - if (slot.getItem() == RSItems.FILTER) { - for (ItemStack slotInFilter : ItemFilter.getFilterItemsFromCache(slot)) { - if (!slotInFilter.isEmpty() && API.instance().getComparer().isEqual(slotInFilter, stack, compare)) { - return true; - } - } - } else if (API.instance().getComparer().isEqual(slot, stack, compare)) { + if (API.instance().getComparer().isEqual(slot, stack, compare)) { return true; } } @@ -52,16 +44,8 @@ public interface IFilterable { for (int i = 0; i < filters.getSlots(); ++i) { ItemStack slot = filters.getStackInSlot(i); - if (!slot.isEmpty()) { - if (slot.getItem() == RSItems.FILTER) { - for (ItemStack slotInFilter : ItemFilter.getFilterItemsFromCache(slot)) { - if (!slotInFilter.isEmpty() && API.instance().getComparer().isEqual(slotInFilter, stack, compare)) { - return false; - } - } - } else if (API.instance().getComparer().isEqual(slot, stack, compare)) { - return false; - } + if (!slot.isEmpty() && API.instance().getComparer().isEqual(slot, stack, compare)) { + return false; } }