Fixed the Fluid filters so that they now work perfectly in the routing system.
This commit is contained in:
parent
b20e1ac4d7
commit
d29b91a106
4 changed files with 189 additions and 114 deletions
|
@ -23,10 +23,12 @@ import javax.annotation.Nonnull;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemFluidRouterFilter extends Item implements IFluidFilterProvider, IVariantProvider {
|
||||
public static String[] names = {"exact"};
|
||||
public class ItemFluidRouterFilter extends Item implements IFluidFilterProvider, IVariantProvider
|
||||
{
|
||||
public static String[] names = { "exact" };
|
||||
|
||||
public ItemFluidRouterFilter() {
|
||||
public ItemFluidRouterFilter()
|
||||
{
|
||||
super();
|
||||
|
||||
setUnlocalizedName(BloodMagic.MODID + ".fluidFilter.");
|
||||
|
@ -35,13 +37,15 @@ public class ItemFluidRouterFilter extends Item implements IFluidFilterProvider,
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName(ItemStack stack) {
|
||||
public String getUnlocalizedName(ItemStack stack)
|
||||
{
|
||||
return super.getUnlocalizedName(stack) + names[stack.getItemDamage()];
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubItems(CreativeTabs creativeTab, NonNullList<ItemStack> list) {
|
||||
public void getSubItems(CreativeTabs creativeTab, NonNullList<ItemStack> list)
|
||||
{
|
||||
if (!isInCreativeTab(creativeTab))
|
||||
return;
|
||||
|
||||
|
@ -51,35 +55,39 @@ public class ItemFluidRouterFilter extends Item implements IFluidFilterProvider,
|
|||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag flag) {
|
||||
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag flag)
|
||||
{
|
||||
tooltip.add(TextHelper.localize("tooltip.bloodmagic.fluidFilter." + names[stack.getItemDamage()]));
|
||||
|
||||
super.addInformation(stack, world, tooltip, flag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFluidFilter getInputFluidFilter(ItemStack filterStack, TileEntity tile, IFluidHandler handler) {
|
||||
public IFluidFilter getInputFluidFilter(ItemStack filterStack, TileEntity tile, IFluidHandler handler)
|
||||
{
|
||||
IFluidFilter testFilter;
|
||||
|
||||
switch (filterStack.getMetadata()) {
|
||||
case 0:
|
||||
testFilter = new RoutingFluidFilter();
|
||||
break;
|
||||
switch (filterStack.getMetadata())
|
||||
{
|
||||
case 0:
|
||||
testFilter = new RoutingFluidFilter();
|
||||
break;
|
||||
|
||||
default:
|
||||
testFilter = new RoutingFluidFilter();
|
||||
default:
|
||||
testFilter = new RoutingFluidFilter();
|
||||
}
|
||||
|
||||
List<ItemStack> filteredList = new ArrayList<>();
|
||||
ItemInventory inv = new ItemInventory(filterStack, 9, "");
|
||||
for (int i = 0; i < inv.getSizeInventory(); i++) {
|
||||
for (int i = 0; i < inv.getSizeInventory(); i++)
|
||||
{
|
||||
ItemStack stack = inv.getStackInSlot(i);
|
||||
if (stack == null) {
|
||||
if (stack.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ItemStack ghostStack = GhostItemHelper.getStackFromGhost(stack);
|
||||
|
||||
filteredList.add(ghostStack);
|
||||
}
|
||||
|
||||
|
@ -88,27 +96,32 @@ public class ItemFluidRouterFilter extends Item implements IFluidFilterProvider,
|
|||
}
|
||||
|
||||
@Override
|
||||
public IFluidFilter getOutputFluidFilter(ItemStack filterStack, TileEntity tile, IFluidHandler handler) {
|
||||
public IFluidFilter getOutputFluidFilter(ItemStack filterStack, TileEntity tile, IFluidHandler handler)
|
||||
{
|
||||
IFluidFilter testFilter;
|
||||
switch (filterStack.getMetadata()) {
|
||||
case 0:
|
||||
testFilter = new RoutingFluidFilter();
|
||||
break;
|
||||
switch (filterStack.getMetadata())
|
||||
{
|
||||
case 0:
|
||||
testFilter = new RoutingFluidFilter();
|
||||
break;
|
||||
|
||||
default:
|
||||
testFilter = new RoutingFluidFilter();
|
||||
default:
|
||||
testFilter = new RoutingFluidFilter();
|
||||
}
|
||||
|
||||
List<ItemStack> filteredList = new ArrayList<>();
|
||||
ItemInventory inv = new ItemInventory(filterStack, 9, ""); //TODO: Change to grab the filter from the Item later.
|
||||
for (int i = 0; i < inv.getSizeInventory(); i++) {
|
||||
for (int i = 0; i < inv.getSizeInventory(); i++)
|
||||
{
|
||||
ItemStack stack = inv.getStackInSlot(i);
|
||||
if (stack.isEmpty()) {
|
||||
if (stack.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ItemStack ghostStack = GhostItemHelper.getStackFromGhost(stack);
|
||||
if (ghostStack.isEmpty()) {
|
||||
if (ghostStack.isEmpty())
|
||||
{
|
||||
ghostStack.setCount(Integer.MAX_VALUE);
|
||||
}
|
||||
|
||||
|
@ -120,12 +133,14 @@ public class ItemFluidRouterFilter extends Item implements IFluidFilterProvider,
|
|||
}
|
||||
|
||||
@Override
|
||||
public void gatherVariants(@Nonnull Int2ObjectMap<String> variants) {
|
||||
public void gatherVariants(@Nonnull Int2ObjectMap<String> variants)
|
||||
{
|
||||
variants.put(0, "type=exact");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getContainedStackForItem(ItemStack filterStack, ItemStack keyStack) {
|
||||
public ItemStack getContainedStackForItem(ItemStack filterStack, ItemStack keyStack)
|
||||
{
|
||||
ItemStack copyStack = keyStack.copy();
|
||||
GhostItemHelper.setItemGhostAmount(copyStack, 0);
|
||||
copyStack.setCount(1);
|
||||
|
|
|
@ -22,10 +22,12 @@ import javax.annotation.Nonnull;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemRouterFilter extends Item implements IItemFilterProvider, IVariantProvider {
|
||||
public static String[] names = {"exact", "ignoreNBT", "modItems", "oreDict"};
|
||||
public class ItemRouterFilter extends Item implements IItemFilterProvider, IVariantProvider
|
||||
{
|
||||
public static String[] names = { "exact", "ignoreNBT", "modItems", "oreDict" };
|
||||
|
||||
public ItemRouterFilter() {
|
||||
public ItemRouterFilter()
|
||||
{
|
||||
super();
|
||||
|
||||
setUnlocalizedName(BloodMagic.MODID + ".itemFilter.");
|
||||
|
@ -34,13 +36,15 @@ public class ItemRouterFilter extends Item implements IItemFilterProvider, IVari
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName(ItemStack stack) {
|
||||
public String getUnlocalizedName(ItemStack stack)
|
||||
{
|
||||
return super.getUnlocalizedName(stack) + names[stack.getItemDamage()];
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubItems(CreativeTabs creativeTab, NonNullList<ItemStack> list) {
|
||||
public void getSubItems(CreativeTabs creativeTab, NonNullList<ItemStack> list)
|
||||
{
|
||||
if (!isInCreativeTab(creativeTab))
|
||||
return;
|
||||
|
||||
|
@ -50,39 +54,44 @@ public class ItemRouterFilter extends Item implements IItemFilterProvider, IVari
|
|||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag flag) {
|
||||
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag flag)
|
||||
{
|
||||
tooltip.add(TextHelper.localize("tooltip.bloodmagic.itemFilter." + names[stack.getItemDamage()]));
|
||||
|
||||
super.addInformation(stack, world, tooltip, flag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemFilter getInputItemFilter(ItemStack filterStack, TileEntity tile, IItemHandler handler) {
|
||||
public IItemFilter getInputItemFilter(ItemStack filterStack, TileEntity tile, IItemHandler handler)
|
||||
{
|
||||
IItemFilter testFilter = new TestItemFilter();
|
||||
|
||||
switch (filterStack.getMetadata()) {
|
||||
case 0:
|
||||
testFilter = new TestItemFilter();
|
||||
break;
|
||||
case 1:
|
||||
testFilter = new IgnoreNBTItemFilter();
|
||||
break;
|
||||
case 2:
|
||||
testFilter = new ModIdItemFilter();
|
||||
break;
|
||||
case 3:
|
||||
testFilter = new OreDictItemFilter();
|
||||
break;
|
||||
switch (filterStack.getMetadata())
|
||||
{
|
||||
case 0:
|
||||
testFilter = new TestItemFilter();
|
||||
break;
|
||||
case 1:
|
||||
testFilter = new IgnoreNBTItemFilter();
|
||||
break;
|
||||
case 2:
|
||||
testFilter = new ModIdItemFilter();
|
||||
break;
|
||||
case 3:
|
||||
testFilter = new OreDictItemFilter();
|
||||
break;
|
||||
|
||||
default:
|
||||
testFilter = new DefaultItemFilter();
|
||||
default:
|
||||
testFilter = new DefaultItemFilter();
|
||||
}
|
||||
|
||||
List<ItemStack> filteredList = new ArrayList<>();
|
||||
ItemInventory inv = new ItemInventory(filterStack, 9, "");
|
||||
for (int i = 0; i < inv.getSizeInventory(); i++) {
|
||||
for (int i = 0; i < inv.getSizeInventory(); i++)
|
||||
{
|
||||
ItemStack stack = inv.getStackInSlot(i);
|
||||
if (stack == null) {
|
||||
if (stack.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -96,37 +105,42 @@ public class ItemRouterFilter extends Item implements IItemFilterProvider, IVari
|
|||
}
|
||||
|
||||
@Override
|
||||
public IItemFilter getOutputItemFilter(ItemStack filterStack, TileEntity tile, IItemHandler handler) {
|
||||
public IItemFilter getOutputItemFilter(ItemStack filterStack, TileEntity tile, IItemHandler handler)
|
||||
{
|
||||
IItemFilter testFilter;
|
||||
|
||||
switch (filterStack.getMetadata()) {
|
||||
case 0:
|
||||
testFilter = new TestItemFilter();
|
||||
break;
|
||||
case 1:
|
||||
testFilter = new IgnoreNBTItemFilter();
|
||||
break;
|
||||
case 2:
|
||||
testFilter = new ModIdItemFilter();
|
||||
break;
|
||||
case 3:
|
||||
testFilter = new OreDictItemFilter();
|
||||
break;
|
||||
switch (filterStack.getMetadata())
|
||||
{
|
||||
case 0:
|
||||
testFilter = new TestItemFilter();
|
||||
break;
|
||||
case 1:
|
||||
testFilter = new IgnoreNBTItemFilter();
|
||||
break;
|
||||
case 2:
|
||||
testFilter = new ModIdItemFilter();
|
||||
break;
|
||||
case 3:
|
||||
testFilter = new OreDictItemFilter();
|
||||
break;
|
||||
|
||||
default:
|
||||
testFilter = new DefaultItemFilter();
|
||||
default:
|
||||
testFilter = new DefaultItemFilter();
|
||||
}
|
||||
|
||||
List<ItemStack> filteredList = new ArrayList<>();
|
||||
ItemInventory inv = new ItemInventory(filterStack, 9, ""); //TODO: Change to grab the filter from the Item later.
|
||||
for (int i = 0; i < inv.getSizeInventory(); i++) {
|
||||
for (int i = 0; i < inv.getSizeInventory(); i++)
|
||||
{
|
||||
ItemStack stack = inv.getStackInSlot(i);
|
||||
if (stack == null) {
|
||||
if (stack.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ItemStack ghostStack = GhostItemHelper.getStackFromGhost(stack);
|
||||
if (ghostStack.isEmpty()) {
|
||||
if (ghostStack.isEmpty())
|
||||
{
|
||||
ghostStack.setCount(Integer.MAX_VALUE);
|
||||
}
|
||||
|
||||
|
@ -138,7 +152,8 @@ public class ItemRouterFilter extends Item implements IItemFilterProvider, IVari
|
|||
}
|
||||
|
||||
@Override
|
||||
public void gatherVariants(@Nonnull Int2ObjectMap<String> variants) {
|
||||
public void gatherVariants(@Nonnull Int2ObjectMap<String> variants)
|
||||
{
|
||||
variants.put(0, "type=exact");
|
||||
variants.put(1, "type=ignorenbt");
|
||||
variants.put(2, "type=moditems");
|
||||
|
@ -146,7 +161,8 @@ public class ItemRouterFilter extends Item implements IItemFilterProvider, IVari
|
|||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getContainedStackForItem(ItemStack filterStack, ItemStack keyStack) {
|
||||
public ItemStack getContainedStackForItem(ItemStack filterStack, ItemStack keyStack)
|
||||
{
|
||||
ItemStack copyStack = keyStack.copy();
|
||||
GhostItemHelper.setItemGhostAmount(copyStack, 0);
|
||||
copyStack.setCount(1);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue