Almost finished Ritual for item routing
This commit is contained in:
parent
539bb564fa
commit
3b590fab6c
12 changed files with 120 additions and 65 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue