package appeng.util; import java.util.Comparator; import appeng.api.config.SortDir; import appeng.api.storage.data.IAEItemStack; public class ItemSorters { public static SortDir Direction = SortDir.ASCENDING; public static int compareInt(int a, int b) { if ( a == b ) return 0; if ( a < b ) return -1; return 1; } public static int compareLong(long a, long b) { if ( a == b ) return 0; if ( a < b ) return -1; return 1; } public static Comparator ConfigBased_SortByName = new Comparator() { @Override public int compare(IAEItemStack o1, IAEItemStack o2) { if ( Direction == SortDir.ASCENDING ) return Platform.getItemDisplayName( o1 ).toLowerCase().compareTo( Platform.getItemDisplayName( o2 ).toLowerCase() ); return Platform.getItemDisplayName( o2 ).toLowerCase().compareTo( Platform.getItemDisplayName( o1 ).toLowerCase() ); } }; public static Comparator ConfigBased_SortByID = new Comparator() { @Override public int compare(IAEItemStack o1, IAEItemStack o2) { if ( Direction == SortDir.ASCENDING ) { int comp = compareInt( o1.getItem().itemID, o2.getItem().itemID ); if ( comp == 0 ) comp = compareInt( o1.getItemDamage(), o2.getItemDamage() ); return comp; } int comp = -compareInt( o1.getItem().itemID, o2.getItem().itemID ); if ( comp == 0 ) comp = -compareInt( o1.getItemDamage(), o2.getItemDamage() ); return comp; } }; public static Comparator ConfigBased_SortByMod = new Comparator() { @Override public int compare(IAEItemStack o1, IAEItemStack o2) { if ( Direction == SortDir.ASCENDING ) return Platform.getMod( o1.getItemStack() ).compareTo( Platform.getMod( o2.getItemStack() ) ); return Platform.getMod( o2.getItemStack() ).compareTo( Platform.getMod( o1.getItemStack() ) ); } }; public static Comparator ConfigBased_SortBySize = new Comparator() { @Override public int compare(IAEItemStack o1, IAEItemStack o2) { if ( Direction == SortDir.ASCENDING ) return compareLong( o2.getStackSize(), o1.getStackSize() ); return compareLong( o1.getStackSize(), o2.getStackSize() ); } }; }