Almost finished Ritual for item routing

This commit is contained in:
WayofTime 2015-01-31 11:46:49 -05:00
parent 539bb564fa
commit 3b590fab6c
12 changed files with 120 additions and 65 deletions

View file

@ -4,8 +4,13 @@ import net.minecraft.item.ItemStack;
public class RoutingFocusLogic
{
public boolean getDefaultMatch(ItemStack keyStack, ItemStack checkedStack)
{
return (keyStack != null ? checkedStack != null && keyStack.getItem() == checkedStack.getItem() && (keyStack.getItem().getHasSubtypes() ? keyStack.getItemDamage() == checkedStack.getItemDamage() : true) : false);
}
public boolean doesItemMatch(boolean previous, ItemStack keyStack, ItemStack checkedStack)
{
return previous || (keyStack != null ? checkedStack != null && keyStack.getItem() == checkedStack.getItem() && (keyStack.getItem().getHasSubtypes() ? keyStack.getItemDamage() == checkedStack.getItemDamage() : true) : false);
return previous || this.getDefaultMatch(keyStack, checkedStack);
}
}

View file

@ -5,8 +5,8 @@ import net.minecraft.item.ItemStack;
public class RoutingFocusLogicIgnMeta extends RoutingFocusLogic
{
@Override
public boolean doesItemMatch(boolean previous, ItemStack keyStack, ItemStack checkedStack)
public boolean getDefaultMatch(ItemStack keyStack, ItemStack checkedStack)
{
return previous || (keyStack != null ? checkedStack != null && keyStack.getItem() == checkedStack.getItem() : false);
return (keyStack != null ? checkedStack != null && keyStack.getItem() == checkedStack.getItem() : false);
}
}

View file

@ -4,8 +4,14 @@ import net.minecraft.item.ItemStack;
public class RoutingFocusLogicMatchNBT extends RoutingFocusLogic
{
public boolean getDefaultMatch(ItemStack keyStack, ItemStack checkedStack)
{
return (keyStack != null ? checkedStack != null && keyStack.getItem() == checkedStack.getItem() && (keyStack.getItem().getHasSubtypes() ? keyStack.getItemDamage() == checkedStack.getItemDamage() : true) && keyStack.areItemStackTagsEqual(keyStack, checkedStack) : false);
}
@Override
public boolean doesItemMatch(boolean previous, ItemStack keyStack, ItemStack checkedStack)
{
return previous && (keyStack != null ? checkedStack != null && keyStack.getItem() == checkedStack.getItem() && (keyStack.getItem().getHasSubtypes() ? keyStack.getItemDamage() == checkedStack.getItemDamage() : true) && keyStack.areItemStackTagsEqual(keyStack, checkedStack) : false);
return previous && this.getDefaultMatch(keyStack, checkedStack);
}
}

View file

@ -7,15 +7,15 @@ import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier;
public class RoutingFocusLogicModItems extends RoutingFocusLogic
{
@Override
public boolean doesItemMatch(boolean previous, ItemStack keyStack, ItemStack checkedStack)
public boolean getDefaultMatch(ItemStack keyStack, ItemStack checkedStack)
{
if(keyStack != null && checkedStack != null)
{
UniqueIdentifier keyId = GameRegistry.findUniqueIdentifierFor(keyStack.getItem());
UniqueIdentifier checkedId = GameRegistry.findUniqueIdentifierFor(checkedStack.getItem());
return previous && keyId.modId.equals(checkedId.modId);
return keyId.modId.equals(checkedId.modId);
}
return previous;
return false;
}
}

View file

@ -26,10 +26,16 @@ public class RoutingFocusParadigm
public boolean doesItemMatch(ItemStack keyStack, ItemStack checkedStack)
{
boolean isGood = false;
boolean isFirst = true;
for(RoutingFocusLogic logic : logicList)
{
if(isFirst)
{
isGood = logic.getDefaultMatch(keyStack, checkedStack);
isFirst = false;
continue;
}
isGood = logic.doesItemMatch(isGood, keyStack, checkedStack);
if(isGood){return true;}
}
return isGood;