From f98760d49b2dcc5187169fe22a6a01aa7fe2ad74 Mon Sep 17 00:00:00 2001 From: Pahimar Date: Mon, 4 May 2015 22:36:39 -0400 Subject: [PATCH] Potentially fixes ComputerCraft related NPE with syncing EMC values on world join, and added a button to the tablet GUI that allows a player to switch the sort order (ascending/descending) --- .../gui/inventory/GuiTransmutationTablet.java | 5 +- .../inventory/ContainerAlchemicalTome.java | 5 +- .../ContainerTransmutationTablet.java | 54 +++++- .../inventory/InventoryAlchemicalTome.java | 4 +- .../InventoryTransmutationTablet.java | 4 +- .../ee3/knowledge/AbilityRegistry.java | 6 +- .../ee3/knowledge/TransmutationKnowledge.java | 15 +- .../pahimar/ee3/reference/Comparators.java | 166 +++++++++++++++++- .../com/pahimar/ee3/util/FilterUtils.java | 5 +- .../java/com/pahimar/ee3/util/ItemHelper.java | 140 +-------------- 10 files changed, 237 insertions(+), 167 deletions(-) diff --git a/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiTransmutationTablet.java b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiTransmutationTablet.java index 72d06168..359c30d2 100644 --- a/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiTransmutationTablet.java @@ -88,6 +88,7 @@ public class GuiTransmutationTablet extends GuiBase } } }; + sortOrderButton = new ElementStatefulButton(this, 151, 58, "sortOrder", 0, 0, 0, 0, 18, 0, 18, 18, 36, 18, Textures.Gui.Elements.BUTTON_SORT_ORDER) { @Override @@ -98,11 +99,11 @@ public class GuiTransmutationTablet extends GuiBase { if (getState() == SORT_ASCENDING) { - drawTexturedModalRect(posX, posY, 36, 0, sizeX, sizeY); + drawTexturedModalRect(posX, posY, 0, 0, sizeX, sizeY); } else if (getState() == SORT_DESCENDING) { - drawTexturedModalRect(posX, posY, 0, 0, sizeX, sizeY); + drawTexturedModalRect(posX, posY, 18, 0, sizeX, sizeY); } } } diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java index 959fbe5c..78be04c3 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java @@ -4,6 +4,7 @@ import com.pahimar.ee3.inventory.element.IElementButtonHandler; import com.pahimar.ee3.inventory.element.IElementTextFieldHandler; import com.pahimar.ee3.item.ItemAlchemicalTome; import com.pahimar.ee3.knowledge.TransmutationKnowledgeRegistry; +import com.pahimar.ee3.reference.Comparators; import com.pahimar.ee3.util.FilterUtils; import com.pahimar.ee3.util.ItemHelper; import cpw.mods.fml.relauncher.Side; @@ -30,7 +31,7 @@ public class ContainerAlchemicalTome extends ContainerEE implements IElementButt public ContainerAlchemicalTome(EntityPlayer entityPlayer, ItemStack itemStack) { - TreeSet knownTransmutations = new TreeSet(ItemHelper.displayNameComparator); + TreeSet knownTransmutations = new TreeSet(Comparators.displayNameComparator); if (itemStack.getItem() instanceof ItemAlchemicalTome && ItemHelper.hasOwnerUUID(itemStack)) { @@ -181,7 +182,7 @@ public class ContainerAlchemicalTome extends ContainerEE implements IElementButt this.requiresUpdate = true; boolean shouldUpdateInventory = false; ItemStack[] newInventory = new ItemStack[80]; - List filteredList = new ArrayList(FilterUtils.filterByNameContains(inventoryAlchemicalTome.getKnownTransmutations(), searchTerm, ItemHelper.displayNameComparator)); + List filteredList = new ArrayList(FilterUtils.filterByNameContains(inventoryAlchemicalTome.getKnownTransmutations(), searchTerm, Comparators.displayNameComparator)); maxPageOffset = filteredList.size() / 80; if (pageOffset > maxPageOffset) diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java index fa2efb1a..fca8806f 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationTablet.java @@ -44,7 +44,7 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen { this.tileEntityTransmutationTablet = tileEntityTransmutationTablet; - TreeSet knownTransmutations = new TreeSet(ItemHelper.displayNameComparator); + TreeSet knownTransmutations = new TreeSet(Comparators.displayNameComparator); if (tileEntityTransmutationTablet.getStackInSlot(TileEntityTransmutationTablet.ALCHEMICAL_TOME_INDEX) != null) { ItemStack itemStack = tileEntityTransmutationTablet.getStackInSlot(TileEntityTransmutationTablet.ALCHEMICAL_TOME_INDEX); @@ -158,8 +158,12 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen { scrollBarPosition = updatedValue; } + else if (valueType == 4) + { + sortOrder = updatedValue; + } - if (valueType >= 0 && valueType <= 3) + if (valueType >= 0 && valueType <= 4) { updateInventory(); } @@ -203,9 +207,38 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen int adjustedStartIndex = (int) ((scrollBarPosition / 187f) * filteredList.size()); - if (sortOption >= 0 && sortOption < Comparators.itemComparators.length) + if (sortOption == 0) { - Collections.sort(filteredList, Comparators.itemComparators[sortOption]); + if (sortOrder == 0) + { + Collections.sort(filteredList, Comparators.displayNameComparator); + } + else + { + Collections.sort(filteredList, Comparators.reverseDisplayNameComparator); + } + } + else if (sortOption == 1) + { + if (sortOrder == 0) + { + Collections.sort(filteredList, Comparators.energyValueItemStackComparator); + } + else + { + Collections.sort(filteredList, Comparators.reverseEnergyValueComparator); + } + } + else if (sortOption == 2) + { + if (sortOrder == 0) + { + Collections.sort(filteredList, Comparators.idComparator); + } + else + { + Collections.sort(filteredList, Comparators.reverseIdComparator); + } } if (filteredList.size() <= 30) @@ -408,16 +441,23 @@ public class ContainerTransmutationTablet extends ContainerEE implements IElemen } } } - else if (elementName.equals("sortOption")) + else if (elementName.equals("sortOrder")) { - + if (sortOrder == 0) + { + sortOrder = 1; + } + else if (sortOrder == 1) + { + sortOrder = 0; + } } for (Object crafter : this.crafters) { ICrafting iCrafting = (ICrafting) crafter; iCrafting.sendProgressBarUpdate(this, 2, sortOption); - iCrafting.sendProgressBarUpdate(this, 3, sortOrder); + iCrafting.sendProgressBarUpdate(this, 4, sortOrder); } } diff --git a/src/main/java/com/pahimar/ee3/inventory/InventoryAlchemicalTome.java b/src/main/java/com/pahimar/ee3/inventory/InventoryAlchemicalTome.java index f09d8ba1..7da12102 100644 --- a/src/main/java/com/pahimar/ee3/inventory/InventoryAlchemicalTome.java +++ b/src/main/java/com/pahimar/ee3/inventory/InventoryAlchemicalTome.java @@ -1,7 +1,7 @@ package com.pahimar.ee3.inventory; +import com.pahimar.ee3.reference.Comparators; import com.pahimar.ee3.reference.Names; -import com.pahimar.ee3.util.ItemHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -23,7 +23,7 @@ public class InventoryAlchemicalTome implements IInventory } else { - this.knownTransmutations = new TreeSet(ItemHelper.idComparator); + this.knownTransmutations = new TreeSet(Comparators.idComparator); } inventory = knownTransmutations.toArray(inventory); } diff --git a/src/main/java/com/pahimar/ee3/inventory/InventoryTransmutationTablet.java b/src/main/java/com/pahimar/ee3/inventory/InventoryTransmutationTablet.java index e30d3898..88c0bdba 100644 --- a/src/main/java/com/pahimar/ee3/inventory/InventoryTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/inventory/InventoryTransmutationTablet.java @@ -1,7 +1,7 @@ package com.pahimar.ee3.inventory; +import com.pahimar.ee3.reference.Comparators; import com.pahimar.ee3.reference.Names; -import com.pahimar.ee3.util.ItemHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -22,7 +22,7 @@ public class InventoryTransmutationTablet implements IInventory { inventory = new ItemStack[30]; - this.knownTransmutations = new TreeSet(ItemHelper.idComparator); + this.knownTransmutations = new TreeSet(Comparators.idComparator); if (knownTransmutations != null) { this.knownTransmutations.addAll(knownTransmutations); diff --git a/src/main/java/com/pahimar/ee3/knowledge/AbilityRegistry.java b/src/main/java/com/pahimar/ee3/knowledge/AbilityRegistry.java index e719f085..a168bbac 100644 --- a/src/main/java/com/pahimar/ee3/knowledge/AbilityRegistry.java +++ b/src/main/java/com/pahimar/ee3/knowledge/AbilityRegistry.java @@ -7,8 +7,8 @@ import com.pahimar.ee3.api.AbilityRegistryProxy; import com.pahimar.ee3.exchange.EnergyValueRegistry; import com.pahimar.ee3.exchange.OreStack; import com.pahimar.ee3.exchange.WrappedStack; +import com.pahimar.ee3.reference.Comparators; import com.pahimar.ee3.reference.Files; -import com.pahimar.ee3.util.ItemHelper; import com.pahimar.ee3.util.LogHelper; import com.pahimar.ee3.util.SerializationHelper; import net.minecraft.item.ItemStack; @@ -30,7 +30,7 @@ public class AbilityRegistry implements JsonSerializer, JsonDes private boolean hasBeenModified; private Set notLearnableSet; private Set notRecoverableSet; - private SortedSet allLearnableItemStacks = new TreeSet(ItemHelper.idComparator); + private SortedSet allLearnableItemStacks = new TreeSet(Comparators.idComparator); private AbilityRegistry() { @@ -58,7 +58,7 @@ public class AbilityRegistry implements JsonSerializer, JsonDes public void discoverAllLearnableItemStacks() { - this.allLearnableItemStacks = new TreeSet(ItemHelper.idComparator); + this.allLearnableItemStacks = new TreeSet(Comparators.idComparator); for (WrappedStack wrappedStack : EnergyValueRegistry.getInstance().getStackValueMap().keySet()) { if (isLearnable(wrappedStack) && EnergyValueRegistry.getInstance().getEnergyValue(wrappedStack) != null) diff --git a/src/main/java/com/pahimar/ee3/knowledge/TransmutationKnowledge.java b/src/main/java/com/pahimar/ee3/knowledge/TransmutationKnowledge.java index 7fa06d70..18f37f71 100644 --- a/src/main/java/com/pahimar/ee3/knowledge/TransmutationKnowledge.java +++ b/src/main/java/com/pahimar/ee3/knowledge/TransmutationKnowledge.java @@ -4,6 +4,7 @@ import com.google.gson.*; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.pahimar.ee3.exchange.JsonItemStack; +import com.pahimar.ee3.reference.Comparators; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.util.FilterUtils; import com.pahimar.ee3.util.INBTTaggable; @@ -26,7 +27,7 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer(ItemHelper.idComparator)); + this(new TreeSet(Comparators.idComparator)); } public TransmutationKnowledge(Collection knownTransmutations) @@ -37,7 +38,7 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer knownTransmutations, boolean canTransmuteEverything) { this.canTransmuteEverything = canTransmuteEverything; - this.knownTransmutations = new TreeSet(ItemHelper.idComparator); + this.knownTransmutations = new TreeSet(Comparators.idComparator); this.knownTransmutations.addAll(knownTransmutations); hasBeenModified = false; } @@ -50,7 +51,7 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer(ItemHelper.idComparator); + this.knownTransmutations = new TreeSet(Comparators.idComparator); this.readFromNBT(nbtTagCompound); hasBeenModified = false; } @@ -150,7 +151,7 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer(ItemHelper.idComparator); + knownTransmutations = new TreeSet(Comparators.idComparator); for (int i = 0; i < tagList.tagCount(); ++i) { NBTTagCompound tagCompound = tagList.getCompoundTagAt(i); @@ -160,7 +161,7 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer(ItemHelper.idComparator); + knownTransmutations = new TreeSet(Comparators.idComparator); } if (nbtTagCompound.hasKey(Names.NBT.CAN_TRANSMUTE_ANYTHING)) @@ -174,7 +175,7 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer(ItemHelper.idComparator); + knownTransmutations = new TreeSet(Comparators.idComparator); canTransmuteEverything = false; } } @@ -245,7 +246,7 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer itemStacks = new TreeSet(ItemHelper.idComparator); + Set itemStacks = new TreeSet(Comparators.idComparator); if (jsonObject.has("canTransmuteEverything") && jsonObject.get("canTransmuteEverything").isJsonPrimitive()) { diff --git a/src/main/java/com/pahimar/ee3/reference/Comparators.java b/src/main/java/com/pahimar/ee3/reference/Comparators.java index 54324172..8f46e666 100644 --- a/src/main/java/com/pahimar/ee3/reference/Comparators.java +++ b/src/main/java/com/pahimar/ee3/reference/Comparators.java @@ -1,13 +1,14 @@ package com.pahimar.ee3.reference; -import com.pahimar.ee3.util.ItemHelper; +import com.pahimar.ee3.exchange.EnergyValueRegistry; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; import java.util.Comparator; public class Comparators { - public static final Comparator[] itemComparators = {ItemHelper.displayNameComparator, ItemHelper.energyValueItemStackComparator, ItemHelper.idComparator}; - public static Comparator stringComparator = new Comparator() { @Override @@ -16,4 +17,163 @@ public class Comparators return string1.compareToIgnoreCase(string2); } }; + + public static Comparator idComparator = new Comparator() + { + public int compare(ItemStack itemStack1, ItemStack itemStack2) + { + if (itemStack1 != null && itemStack2 != null) + { + // Sort on itemID + if (Item.getIdFromItem(itemStack1.getItem()) - Item.getIdFromItem(itemStack2.getItem()) == 0) + { + // Sort on item + if (itemStack1.getItem() == itemStack2.getItem()) + { + // Then sort on meta + if ((itemStack1.getItemDamage() == itemStack2.getItemDamage()) || itemStack1.getItemDamage() == OreDictionary.WILDCARD_VALUE || itemStack2.getItemDamage() == OreDictionary.WILDCARD_VALUE) + { + // Then sort on NBT + if (itemStack1.hasTagCompound() && itemStack2.hasTagCompound()) + { + // Then sort on stack size + if (ItemStack.areItemStackTagsEqual(itemStack1, itemStack2)) + { + return (itemStack1.stackSize - itemStack2.stackSize); + } + else + { + return (itemStack1.getTagCompound().hashCode() - itemStack2.getTagCompound().hashCode()); + } + } + else if (!(itemStack1.hasTagCompound()) && itemStack2.hasTagCompound()) + { + return -1; + } + else if (itemStack1.hasTagCompound() && !(itemStack2.hasTagCompound())) + { + return 1; + } + else + { + return (itemStack1.stackSize - itemStack2.stackSize); + } + } + else + { + return (itemStack1.getItemDamage() - itemStack2.getItemDamage()); + } + } + else + { + return itemStack1.getItem().getUnlocalizedName(itemStack1).compareToIgnoreCase(itemStack2.getItem().getUnlocalizedName(itemStack2)); + } + } + else + { + return Item.getIdFromItem(itemStack1.getItem()) - Item.getIdFromItem(itemStack2.getItem()); + } + } + else if (itemStack1 != null) + { + return -1; + } + else if (itemStack2 != null) + { + return 1; + } + else + { + return 0; + } + } + }; + + public static Comparator reverseIdComparator = new Comparator() + { + @Override + public int compare(ItemStack itemStack1, ItemStack itemStack2) + { + return idComparator.compare(itemStack1, itemStack2) * -1; + } + }; + + public static Comparator displayNameComparator = new Comparator() + { + public int compare(ItemStack itemStack1, ItemStack itemStack2) + { + if (itemStack1 != null && itemStack2 != null) + { + if (itemStack1.getDisplayName().equalsIgnoreCase(itemStack2.getDisplayName())) + { + return idComparator.compare(itemStack1, itemStack2); + } + else + { + return itemStack1.getDisplayName().compareToIgnoreCase(itemStack2.getDisplayName()); + } + } + else if (itemStack1 != null) + { + return -1; + } + else if (itemStack2 != null) + { + return 1; + } + else + { + return 0; + } + } + }; + + public static Comparator reverseDisplayNameComparator = new Comparator() + { + @Override + public int compare(ItemStack itemStack1, ItemStack itemStack2) + { + return displayNameComparator.compare(itemStack1, itemStack2) * -1; + } + }; + + public static Comparator energyValueItemStackComparator = new Comparator() + { + @Override + public int compare(ItemStack itemStack1, ItemStack itemStack2) + { + if (itemStack1 != null && itemStack2 != null) + { + if (EnergyValueRegistry.getInstance().hasEnergyValue(itemStack1) && EnergyValueRegistry.getInstance().hasEnergyValue(itemStack2)) + { + return Float.compare(EnergyValueRegistry.getInstance().getEnergyValue(itemStack1).getValue(), EnergyValueRegistry.getInstance().getEnergyValue(itemStack2).getValue()); + } + else + { + return idComparator.compare(itemStack1, itemStack2); + } + } + else if (itemStack1 != null) + { + return -1; + } + else if (itemStack2 != null) + { + return 1; + } + else + { + return 0; + } + } + }; + + public static Comparator reverseEnergyValueComparator = new Comparator() + { + @Override + public int compare(ItemStack itemStack1, ItemStack itemStack2) + { + return energyValueItemStackComparator.compare(itemStack1, itemStack2) * -1; + } + }; } diff --git a/src/main/java/com/pahimar/ee3/util/FilterUtils.java b/src/main/java/com/pahimar/ee3/util/FilterUtils.java index 9fbcfe4b..b5107d0a 100644 --- a/src/main/java/com/pahimar/ee3/util/FilterUtils.java +++ b/src/main/java/com/pahimar/ee3/util/FilterUtils.java @@ -2,6 +2,7 @@ package com.pahimar.ee3.util; import com.pahimar.ee3.api.EnergyValue; import com.pahimar.ee3.api.EnergyValueRegistryProxy; +import com.pahimar.ee3.reference.Comparators; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -11,7 +12,7 @@ public class FilterUtils { public static Set filterForItemBlock(Set unfilteredItemStackSet) { - return filterForItemBlock(unfilteredItemStackSet, ItemHelper.idComparator); + return filterForItemBlock(unfilteredItemStackSet, Comparators.idComparator); } public static Set filterForItemBlock(Set unfilteredItemStackSet, Comparator comparator) @@ -31,7 +32,7 @@ public class FilterUtils public static Set filterByNameStartsWith(Set unfilteredItemStackSet, String filterString) { - return filterByNameStartsWith(unfilteredItemStackSet, filterString, ItemHelper.idComparator); + return filterByNameStartsWith(unfilteredItemStackSet, filterString, Comparators.idComparator); } public static Set filterByNameStartsWith(Set unfilteredItemStackSet, String filterString, Comparator comparator) diff --git a/src/main/java/com/pahimar/ee3/util/ItemHelper.java b/src/main/java/com/pahimar/ee3/util/ItemHelper.java index 47bf1fcf..6a22d7a9 100644 --- a/src/main/java/com/pahimar/ee3/util/ItemHelper.java +++ b/src/main/java/com/pahimar/ee3/util/ItemHelper.java @@ -1,13 +1,11 @@ package com.pahimar.ee3.util; -import com.pahimar.ee3.exchange.EnergyValueRegistry; +import com.pahimar.ee3.reference.Comparators; import com.pahimar.ee3.reference.Names; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; -import java.util.Comparator; import java.util.UUID; public class ItemHelper @@ -19,138 +17,6 @@ public class ItemHelper return clonedItemStack; } - public static Comparator idComparator = new Comparator() - { - public int compare(ItemStack itemStack1, ItemStack itemStack2) - { - if (itemStack1 != null && itemStack2 != null) - { - // Sort on itemID - if (Item.getIdFromItem(itemStack1.getItem()) - Item.getIdFromItem(itemStack2.getItem()) == 0) - { - // Sort on item - if (itemStack1.getItem() == itemStack2.getItem()) - { - // Then sort on meta - if ((itemStack1.getItemDamage() == itemStack2.getItemDamage()) || itemStack1.getItemDamage() == OreDictionary.WILDCARD_VALUE || itemStack2.getItemDamage() == OreDictionary.WILDCARD_VALUE) - { - // Then sort on NBT - if (itemStack1.hasTagCompound() && itemStack2.hasTagCompound()) - { - // Then sort on stack size - if (ItemStack.areItemStackTagsEqual(itemStack1, itemStack2)) - { - return (itemStack1.stackSize - itemStack2.stackSize); - } - else - { - return (itemStack1.getTagCompound().hashCode() - itemStack2.getTagCompound().hashCode()); - } - } - else if (!(itemStack1.hasTagCompound()) && itemStack2.hasTagCompound()) - { - return -1; - } - else if (itemStack1.hasTagCompound() && !(itemStack2.hasTagCompound())) - { - return 1; - } - else - { - return (itemStack1.stackSize - itemStack2.stackSize); - } - } - else - { - return (itemStack1.getItemDamage() - itemStack2.getItemDamage()); - } - } - else - { - return itemStack1.getItem().getUnlocalizedName(itemStack1).compareToIgnoreCase(itemStack2.getItem().getUnlocalizedName(itemStack2)); - } - } - else - { - return Item.getIdFromItem(itemStack1.getItem()) - Item.getIdFromItem(itemStack2.getItem()); - } - } - else if (itemStack1 != null) - { - return -1; - } - else if (itemStack2 != null) - { - return 1; - } - else - { - return 0; - } - } - }; - - public static Comparator displayNameComparator = new Comparator() - { - public int compare(ItemStack itemStack1, ItemStack itemStack2) - { - if (itemStack1 != null && itemStack2 != null) - { - if (itemStack1.getDisplayName().equalsIgnoreCase(itemStack2.getDisplayName())) - { - return idComparator.compare(itemStack1, itemStack2); - } - else - { - return itemStack1.getDisplayName().compareToIgnoreCase(itemStack2.getDisplayName()); - } - } - else if (itemStack1 != null) - { - return -1; - } - else if (itemStack2 != null) - { - return 1; - } - else - { - return 0; - } - } - }; - - public static Comparator energyValueItemStackComparator = new Comparator() - { - @Override - public int compare(ItemStack itemStack1, ItemStack itemStack2) - { - if (itemStack1 != null && itemStack2 != null) - { - if (EnergyValueRegistry.getInstance().hasEnergyValue(itemStack1) && EnergyValueRegistry.getInstance().hasEnergyValue(itemStack2)) - { - return Float.compare(EnergyValueRegistry.getInstance().getEnergyValue(itemStack1).getValue(), EnergyValueRegistry.getInstance().getEnergyValue(itemStack2).getValue()); - } - else - { - return idComparator.compare(itemStack1, itemStack2); - } - } - else if (itemStack1 != null) - { - return -1; - } - else if (itemStack2 != null) - { - return 1; - } - else - { - return 0; - } - } - }; - /** * Compares two ItemStacks for equality, testing itemID, metaData, stackSize, and their NBTTagCompounds (if they are * present) @@ -161,7 +27,7 @@ public class ItemHelper */ public static boolean equals(ItemStack first, ItemStack second) { - return (idComparator.compare(first, second) == 0); + return (Comparators.idComparator.compare(first, second) == 0); } public static boolean equalsIgnoreStackSize(ItemStack itemStack1, ItemStack itemStack2) @@ -200,7 +66,7 @@ public class ItemHelper public static int compare(ItemStack itemStack1, ItemStack itemStack2) { - return idComparator.compare(itemStack1, itemStack2); + return Comparators.idComparator.compare(itemStack1, itemStack2); } public static String toString(ItemStack itemStack)