Filter now renders item it is filter on sides
This commit is contained in:
parent
8f14af4bb7
commit
2e4de27e94
8 changed files with 225 additions and 75 deletions
|
@ -10,7 +10,6 @@ import resonantinduction.archaic.crate.ItemBlockCrate;
|
||||||
import resonantinduction.archaic.crate.TileCrate;
|
import resonantinduction.archaic.crate.TileCrate;
|
||||||
import resonantinduction.archaic.engineering.ItemHammer;
|
import resonantinduction.archaic.engineering.ItemHammer;
|
||||||
import resonantinduction.archaic.engineering.TileEngineeringTable;
|
import resonantinduction.archaic.engineering.TileEngineeringTable;
|
||||||
import resonantinduction.archaic.filter.BlockFilter;
|
|
||||||
import resonantinduction.archaic.filter.BlockImprinter;
|
import resonantinduction.archaic.filter.BlockImprinter;
|
||||||
import resonantinduction.archaic.filter.TileFilter;
|
import resonantinduction.archaic.filter.TileFilter;
|
||||||
import resonantinduction.archaic.filter.TileImprinter;
|
import resonantinduction.archaic.filter.TileImprinter;
|
||||||
|
@ -107,7 +106,7 @@ public class Archaic
|
||||||
blockCast = contentRegistry.createTile(BlockCastingMold.class, TileCastingMold.class);
|
blockCast = contentRegistry.createTile(BlockCastingMold.class, TileCastingMold.class);
|
||||||
blockGutter = contentRegistry.newBlock(TileGutter.class);
|
blockGutter = contentRegistry.newBlock(TileGutter.class);
|
||||||
blockGrate = contentRegistry.newBlock(TileGrate.class);
|
blockGrate = contentRegistry.newBlock(TileGrate.class);
|
||||||
blockFilter = contentRegistry.createTile(BlockFilter.class, TileFilter.class);
|
blockFilter = contentRegistry.newBlock(TileFilter.class);
|
||||||
blockTank = contentRegistry.newBlock(TileTank.class);
|
blockTank = contentRegistry.newBlock(TileTank.class);
|
||||||
|
|
||||||
itemHandCrank = contentRegistry.createItem(ItemHandCrank.class);
|
itemHandCrank = contentRegistry.createItem(ItemHandCrank.class);
|
||||||
|
@ -119,6 +118,7 @@ public class Archaic
|
||||||
TabRI.ITEMSTACK = new ItemStack(blockEngineeringTable);
|
TabRI.ITEMSTACK = new ItemStack(blockEngineeringTable);
|
||||||
|
|
||||||
PacketAnnotation.register(TileFirebox.class);
|
PacketAnnotation.register(TileFirebox.class);
|
||||||
|
PacketAnnotation.register(TileFilter.class);
|
||||||
proxy.preInit();
|
proxy.preInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
package resonantinduction.archaic.filter;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import net.minecraft.block.material.Material;
|
|
||||||
import net.minecraft.entity.Entity;
|
|
||||||
import net.minecraft.entity.item.EntityItem;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import resonantinduction.core.prefab.imprint.BlockImprintable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used for filtering liquid mixtures
|
|
||||||
*
|
|
||||||
* @author Calclavia
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class BlockFilter extends BlockImprintable
|
|
||||||
{
|
|
||||||
public BlockFilter(int id)
|
|
||||||
{
|
|
||||||
super(id, Material.iron);
|
|
||||||
setBlockBounds(0.01f, 0.01f, 0.01f, 0.99f, 0.99f, 0.99f);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB aabb, List list, Entity entity)
|
|
||||||
{
|
|
||||||
if (entity == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (entity instanceof EntityItem)
|
|
||||||
{
|
|
||||||
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
|
||||||
|
|
||||||
if (tileEntity instanceof TileFilter)
|
|
||||||
{
|
|
||||||
if (((TileFilter) tileEntity).isFiltering(((EntityItem) entity).getEntityItem()))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
super.addCollisionBoxesToList(world, x, y, z, aabb, list, entity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TileEntity createNewTileEntity(World var1)
|
|
||||||
{
|
|
||||||
return new TileFilter();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean renderAsNormalBlock()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isOpaqueCube()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,26 +1,61 @@
|
||||||
package resonantinduction.archaic.filter;
|
package resonantinduction.archaic.filter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.item.EntityItem;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.network.packet.Packet;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.IFluidHandler;
|
import net.minecraftforge.fluids.IFluidHandler;
|
||||||
import resonantinduction.api.IFilterable;
|
import resonantinduction.api.IFilterable;
|
||||||
import resonantinduction.api.recipe.MachineRecipes;
|
import resonantinduction.api.recipe.MachineRecipes;
|
||||||
import resonantinduction.api.recipe.MachineRecipes.RecipeType;
|
import resonantinduction.api.recipe.MachineRecipes.RecipeType;
|
||||||
import resonantinduction.api.recipe.RecipeResource;
|
import resonantinduction.api.recipe.RecipeResource;
|
||||||
|
import resonantinduction.core.ResonantInduction;
|
||||||
import resonantinduction.core.prefab.imprint.ItemImprint;
|
import resonantinduction.core.prefab.imprint.ItemImprint;
|
||||||
import resonantinduction.core.prefab.imprint.TileFilterable;
|
import resonantinduction.core.prefab.imprint.TileFilterable;
|
||||||
|
import resonantinduction.core.render.RenderItemOverlayTile;
|
||||||
import resonantinduction.core.resource.ResourceGenerator;
|
import resonantinduction.core.resource.ResourceGenerator;
|
||||||
import resonantinduction.core.resource.fluid.BlockFluidMixture;
|
import resonantinduction.core.resource.fluid.BlockFluidMixture;
|
||||||
import universalelectricity.api.vector.Vector3;
|
import universalelectricity.api.vector.Vector3;
|
||||||
|
import calclavia.lib.content.module.TileRender;
|
||||||
|
import calclavia.lib.network.Synced.SyncedInput;
|
||||||
|
import calclavia.lib.network.Synced.SyncedOutput;
|
||||||
|
import calclavia.lib.prefab.vector.Cuboid;
|
||||||
import calclavia.lib.utility.LanguageUtility;
|
import calclavia.lib.utility.LanguageUtility;
|
||||||
import calclavia.lib.utility.inventory.InventoryUtility;
|
import calclavia.lib.utility.inventory.InventoryUtility;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class TileFilter extends TileFilterable implements IFilterable
|
public class TileFilter extends TileFilterable implements IFilterable
|
||||||
{
|
{
|
||||||
public TileFilter()
|
public TileFilter()
|
||||||
{
|
{
|
||||||
|
super(Material.iron);
|
||||||
maxSlots = 1;
|
maxSlots = 1;
|
||||||
|
isOpaqueCube = false;
|
||||||
|
normalRender = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Iterable<Cuboid> getCollisionBoxes(Cuboid intersect, Entity entity)
|
||||||
|
{
|
||||||
|
if (entity == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
if (entity instanceof EntityItem)
|
||||||
|
{
|
||||||
|
if (isFiltering(((EntityItem) entity).getEntityItem()))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.getCollisionBoxes(intersect, entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -30,6 +65,17 @@ public class TileFilter extends TileFilterable implements IFilterable
|
||||||
|
|
||||||
if (ticks % 60 == 0)
|
if (ticks % 60 == 0)
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Toggle item filter render
|
||||||
|
*/
|
||||||
|
List<ItemStack> filteredStacks = ItemImprint.getFilterList(getFilter());
|
||||||
|
|
||||||
|
if (filteredStacks.size() > 0)
|
||||||
|
renderIndex = (renderIndex + 1) % filteredStacks.size();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fluid filters
|
||||||
|
*/
|
||||||
Vector3 position = new Vector3(this);
|
Vector3 position = new Vector3(this);
|
||||||
Vector3 checkAbove = position.clone().translate(ForgeDirection.UP);
|
Vector3 checkAbove = position.clone().translate(ForgeDirection.UP);
|
||||||
Vector3 checkBelow = position.clone().translate(ForgeDirection.DOWN);
|
Vector3 checkBelow = position.clone().translate(ForgeDirection.DOWN);
|
||||||
|
@ -72,6 +118,55 @@ public class TileFilter extends TileFilterable implements IFilterable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SyncedOutput
|
||||||
|
@Override
|
||||||
|
public void writeToNBT(NBTTagCompound nbt)
|
||||||
|
{
|
||||||
|
super.writeToNBT(nbt);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SyncedInput
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound nbt)
|
||||||
|
{
|
||||||
|
super.readFromNBT(nbt);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int renderIndex = 0;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
protected TileRender newRenderer()
|
||||||
|
{
|
||||||
|
return new TileRender()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean renderDynamic(Vector3 position, boolean isItem, float frame)
|
||||||
|
{
|
||||||
|
if (isItem)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (getFilter() != null)
|
||||||
|
{
|
||||||
|
List<ItemStack> filteredStacks = ItemImprint.getFilterList(getFilter());
|
||||||
|
|
||||||
|
if (filteredStacks.size() > 0)
|
||||||
|
{
|
||||||
|
ItemStack renderStack = filteredStacks.get(renderIndex);
|
||||||
|
RenderItemOverlayTile.renderItemOnSides(TileFilter.this, renderStack, position.x, position.y, position.z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Packet getDescriptionPacket()
|
||||||
|
{
|
||||||
|
return ResonantInduction.PACKET_ANNOTATION.getPacket(this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canStore(ItemStack stack, int slot, ForgeDirection side)
|
public boolean canStore(ItemStack stack, int slot, ForgeDirection side)
|
||||||
{
|
{
|
||||||
|
@ -82,6 +177,7 @@ public class TileFilter extends TileFilterable implements IFilterable
|
||||||
public void setFilter(ItemStack filter)
|
public void setFilter(ItemStack filter)
|
||||||
{
|
{
|
||||||
setInventorySlotContents(0, filter);
|
setInventorySlotContents(0, filter);
|
||||||
|
markUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -10,6 +10,7 @@ import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
|
import resonantinduction.core.resource.ItemHandCrank;
|
||||||
import calclavia.lib.prefab.turbine.BlockTurbine;
|
import calclavia.lib.prefab.turbine.BlockTurbine;
|
||||||
import calclavia.lib.prefab.turbine.TileTurbine;
|
import calclavia.lib.prefab.turbine.TileTurbine;
|
||||||
|
|
||||||
|
@ -63,6 +64,28 @@ public class BlockMechanicalTurbine extends BlockTurbine
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onMachineActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
|
||||||
|
{
|
||||||
|
if (player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemHandCrank)
|
||||||
|
{
|
||||||
|
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||||
|
|
||||||
|
if (tileEntity instanceof TileTurbine)
|
||||||
|
{
|
||||||
|
if (!world.isRemote)
|
||||||
|
{
|
||||||
|
TileMechanicalTurbine tile = (TileMechanicalTurbine) tileEntity;
|
||||||
|
tile.mechanicalNode.torque = -tile.mechanicalNode.torque;
|
||||||
|
tile.mechanicalNode.angularVelocity = -tile.mechanicalNode.angularVelocity;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onUseWrench(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
|
public boolean onUseWrench(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,7 +21,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
public class TileMechanicalPiston extends TileMechanical implements IRotatable
|
public class TileMechanicalPiston extends TileMechanical implements IRotatable
|
||||||
{
|
{
|
||||||
@Config
|
@Config
|
||||||
private int mechanicalPistonBreakCount = 5;
|
private static int mechanicalPistonBreakCount = 5;
|
||||||
|
|
||||||
public TileMechanicalPiston()
|
public TileMechanicalPiston()
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package resonantinduction.core.grid;
|
||||||
|
|
||||||
|
import net.minecraftforge.event.Event;
|
||||||
|
|
||||||
|
//NO-OP
|
||||||
|
abstract class NodeProviderEvent extends Event
|
||||||
|
{
|
||||||
|
public final INodeProvider provider;
|
||||||
|
|
||||||
|
protected NodeProviderEvent(INodeProvider provider)
|
||||||
|
{
|
||||||
|
this.provider = provider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class NodeProviderLoadEvent extends NodeProviderEvent
|
||||||
|
{
|
||||||
|
protected NodeProviderLoadEvent(INodeProvider provider)
|
||||||
|
{
|
||||||
|
super(provider);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class NodeProviderUnloadEvent extends NodeProviderEvent
|
||||||
|
{
|
||||||
|
protected NodeProviderUnloadEvent(INodeProvider provider)
|
||||||
|
{
|
||||||
|
super(provider);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,11 @@
|
||||||
package resonantinduction.core.prefab.imprint;
|
package resonantinduction.core.prefab.imprint;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import calclavia.lib.utility.nbt.NBTUtility;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityList;
|
import net.minecraft.entity.EntityList;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
@ -110,12 +112,23 @@ public class ItemImprint extends Item
|
||||||
{
|
{
|
||||||
HashSet<ItemStack> filterStacks = new HashSet<ItemStack>();
|
HashSet<ItemStack> filterStacks = new HashSet<ItemStack>();
|
||||||
|
|
||||||
if (itemStack.getTagCompound() == null)
|
NBTTagCompound nbt = NBTUtility.getNBTTagCompound(itemStack);
|
||||||
|
NBTTagList tagList = nbt.getTagList("Items");
|
||||||
|
|
||||||
|
for (int i = 0; i < tagList.tagCount(); ++i)
|
||||||
{
|
{
|
||||||
itemStack.setTagCompound(new NBTTagCompound());
|
NBTTagCompound var4 = (NBTTagCompound) tagList.tagAt(i);
|
||||||
|
filterStacks.add(ItemStack.loadItemStackFromNBT(var4));
|
||||||
}
|
}
|
||||||
|
|
||||||
NBTTagCompound nbt = itemStack.getTagCompound();
|
return filterStacks;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ItemStack> getFilterList(ItemStack itemStack)
|
||||||
|
{
|
||||||
|
List<ItemStack> filterStacks = new ArrayList<ItemStack>();
|
||||||
|
|
||||||
|
NBTTagCompound nbt = NBTUtility.getNBTTagCompound(itemStack);
|
||||||
NBTTagList tagList = nbt.getTagList("Items");
|
NBTTagList tagList = nbt.getTagList("Items");
|
||||||
|
|
||||||
for (int i = 0; i < tagList.tagCount(); ++i)
|
for (int i = 0; i < tagList.tagCount(); ++i)
|
||||||
|
|
|
@ -2,14 +2,19 @@ package resonantinduction.core.prefab.imprint;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.entity.item.EntityItem;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import resonantinduction.api.IFilterable;
|
import resonantinduction.api.IFilterable;
|
||||||
|
import universalelectricity.api.vector.Vector3;
|
||||||
|
import calclavia.lib.content.module.prefab.TileInventory;
|
||||||
import calclavia.lib.prefab.tile.IRotatable;
|
import calclavia.lib.prefab.tile.IRotatable;
|
||||||
import calclavia.lib.prefab.tile.TileExternalInventory;
|
|
||||||
|
|
||||||
public abstract class TileFilterable extends TileExternalInventory implements IRotatable, IFilterable
|
public abstract class TileFilterable extends TileInventory implements IRotatable, IFilterable
|
||||||
{
|
{
|
||||||
private ItemStack filterItem;
|
private ItemStack filterItem;
|
||||||
private boolean inverted;
|
private boolean inverted;
|
||||||
|
@ -18,6 +23,13 @@ public abstract class TileFilterable extends TileExternalInventory implements IR
|
||||||
|
|
||||||
public TileFilterable()
|
public TileFilterable()
|
||||||
{
|
{
|
||||||
|
super(null);
|
||||||
|
this.maxSlots = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TileFilterable(Material material)
|
||||||
|
{
|
||||||
|
super(material);
|
||||||
this.maxSlots = 2;
|
this.maxSlots = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +38,49 @@ public abstract class TileFilterable extends TileExternalInventory implements IR
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Allows filters to be placed inside of this block. */
|
||||||
|
@Override
|
||||||
|
public boolean use(EntityPlayer player, int side, Vector3 hit)
|
||||||
|
{
|
||||||
|
ItemStack containingStack = getFilter();
|
||||||
|
|
||||||
|
if (containingStack != null)
|
||||||
|
{
|
||||||
|
if (!world().isRemote)
|
||||||
|
{
|
||||||
|
EntityItem dropStack = new EntityItem(world(), player.posX, player.posY, player.posZ, containingStack);
|
||||||
|
dropStack.delayBeforeCanPickup = 0;
|
||||||
|
world().spawnEntityInWorld(dropStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
setFilter(null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (player.getCurrentEquippedItem() != null)
|
||||||
|
{
|
||||||
|
if (player.getCurrentEquippedItem().getItem() instanceof ItemImprint)
|
||||||
|
{
|
||||||
|
setFilter(player.getCurrentEquippedItem());
|
||||||
|
player.inventory.setInventorySlotContents(player.inventory.currentItem, null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean configure(EntityPlayer player, int side, Vector3 hit)
|
||||||
|
{
|
||||||
|
toggleInversion();
|
||||||
|
markUpdate();
|
||||||
|
markRender();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Looks through the things in the filter and finds out which item is being filtered.
|
* Looks through the things in the filter and finds out which item is being filtered.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue