public SlotSpecificItem(IInventory inventory, int index, int x, int y, ItemStack stack) { super(inventory, index, x, y); this.stack = new ComparableItemStack(stack); }
@Override public int hashCode() { return oreID != -1 ? oreName.hashCode() : (metadata & 65535) | getId() << 16; }
public static boolean removeReaction(ItemStack reactant, Fluid fluid) { return reactionMap.remove(asList(new ComparableItemStack(reactant).hashCode(), fluid.getName().hashCode())) != null; }
@Override public boolean isItemValid(ItemStack stack) { return this.stack.isItemEqual(new ComparableItemStack(stack)); }
public static List<SteamFuelWrapper> getRecipes(IModRegistry registry, IGuiHelper guiHelper) { List<SteamFuelWrapper> recipes = new ArrayList<>(); for (ComparableItemStack fuel : SteamManager.getFuels()) { ItemStack fuelStack = fuel.toItemStack(); recipes.add(new SteamFuelWrapper(guiHelper, fuelStack, SteamManager.getFuelEnergy(fuelStack))); } Set specificFuels = SteamManager.getFuels(); for (ItemStack fuel : registry.getIngredientRegistry().getFuels()) { if (specificFuels.contains(new ComparableItemStack(fuel))) { continue; } int energy = SteamManager.getFuelEnergy(fuel); if (energy > 0) { recipes.add(new SteamFuelWrapper(guiHelper, fuel, energy)); } } return recipes; }
public ComparableItemStack(Item item, int metadata, int stackSize) { this.item = item; this.metadata = metadata; this.stackSize = stackSize; this.oreID = ItemHelper.oreProxy.getOreID(this.toItemStack()); this.oreName = ItemHelper.oreProxy.getOreName(oreID); }
@Override public boolean equals(Object o) { return o instanceof ComparableItemStack && isItemEqual((ComparableItemStack) o); }
public boolean isItemEqual(ComparableItemStack other) { return other != null && (oreID != -1 && oreID == other.oreID || isEqual(other)); }
@Override public boolean isStackEqual(ComparableItemStack other) { return super.isStackEqual(other) && isStackTagEqual((ComparableItemStackNBT) other); }
public static void refresh() { Map<BlockWrapper, FluidStack> tempBlockMap = new Object2ObjectOpenHashMap<>(blockMap.size()); Map<ItemWrapper, FluidStack> tempItemMap = new Object2ObjectOpenHashMap<>(itemMap.size()); HashMultimap<BlockWrapper, BlockWrapper> tempLeafMap = HashMultimap.create(leafMap.keySet().size(), leafMap.size() / leafMap.keySet().size()); TObjectIntHashMap<ComparableItemStack> tempFertilizerMap = new TObjectIntHashMap<>(fertilizerMap.size()); for (Entry<BlockWrapper, FluidStack> entry : blockMap.entrySet()) { BlockWrapper tempBlock = new BlockWrapper(entry.getKey().block, entry.getKey().metadata); tempBlockMap.put(tempBlock, entry.getValue()); } for (Entry<ItemWrapper, FluidStack> entry : itemMap.entrySet()) { ItemWrapper tempItem = new ItemWrapper(entry.getKey().item, entry.getKey().metadata); tempItemMap.put(tempItem, entry.getValue()); } for (Entry<BlockWrapper, BlockWrapper> entry : leafMap.entries()) { BlockWrapper tempLeaf = new BlockWrapper(entry.getKey().block, entry.getKey().metadata); tempLeafMap.put(tempLeaf, entry.getValue()); } for (TObjectIntIterator<ComparableItemStack> it = fertilizerMap.iterator(); it.hasNext(); ) { it.advance(); tempFertilizerMap.put(new ComparableItemStack(it.key().toItemStack()), it.value()); } blockMap.clear(); itemMap.clear(); leafMap.clear(); fertilizerMap.clear(); blockMap = tempBlockMap; itemMap = tempItemMap; leafMap = tempLeafMap; fertilizerMap = tempFertilizerMap; }
public static List<NumismaticFuelWrapper> getRecipes(IGuiHelper guiHelper) { List<NumismaticFuelWrapper> recipes = new ArrayList<>(); for (ComparableItemStack fuel : NumismaticManager.getFuels()) { ItemStack fuelStack = fuel.toItemStack(); recipes.add(new NumismaticFuelWrapper(guiHelper, fuelStack, NumismaticManager.getFuelEnergy(fuelStack))); } return recipes; }
public boolean isStackEqual(ComparableItemStack other) { return isItemEqual(other) && stackSize == other.stackSize; }
public static void refresh() { TObjectIntHashMap<ComparableItemStack> tempMap = new TObjectIntHashMap<>(fuelMap.size()); for (TObjectIntIterator<ComparableItemStack> it = fuelMap.iterator(); it.hasNext(); ) { it.advance(); tempMap.put(new ComparableItemStack(it.key().toItemStack()), it.value()); } fuelMap.clear(); fuelMap = tempMap; }
@Override public ComparableItemStack clone() { return new ComparableItemStack(this); }
public static Reaction getReaction(ItemStack reactant, Fluid fluid) { return reactant.isEmpty() || fluid == null ? null : reactionMap.get(asList(new ComparableItemStack(reactant).hashCode(), fluid.getName().hashCode())); }
public static List<NumismaticFuelWrapper> getRecipes(IGuiHelper guiHelper) { List<NumismaticFuelWrapper> recipes = new ArrayList<>(); for (ComparableItemStack fuel : NumismaticManager.getGemFuels()) { ItemStack fuelStack = fuel.toItemStack(); recipes.add(new NumismaticFuelWrapper(guiHelper, fuelStack, NumismaticManager.getGemFuelEnergy(fuelStack), RecipeUidsTE.DYNAMO_NUMISMATIC_GEM)); } return recipes; }
@Override public String toString() { StringBuilder builder = new StringBuilder(768); builder.append(getClass().getName()).append('@'); builder.append(System.identityHashCode(this)).append('{'); builder.append("ID:").append(getId()).append(", "); builder.append("DMG:").append(metadata).append(", "); builder.append("ORE:").append(oreID).append('|').append(oreName).append(", "); builder.append("ITM:"); if (item == null) { builder.append("null"); } else { builder.append(item.getClass().getName()).append('@'); builder.append(System.identityHashCode(item)).append(' '); builder.append('[').append(item.getRegistryName()).append(']'); } builder.append('}'); return builder.toString(); }
public static void refresh() { TObjectIntHashMap<ComparableItemStack> tempBaitMap = new TObjectIntHashMap<>(baitMap.size()); for (TObjectIntIterator<ComparableItemStack> it = baitMap.iterator(); it.hasNext(); ) { it.advance(); tempBaitMap.put(new ComparableItemStack(it.key().toItemStack()), it.value()); } baitMap.clear(); baitMap = tempBaitMap; }
public static boolean removeElementalReaction(ItemStack reactant, Fluid fluid) { validReactantsElemental.remove(new ComparableItemStack(reactant)); validFluidsElemental.remove(fluid.getName()); return true; }
public static boolean addReaction(ItemStack reactant, Fluid fluid, int energy) { if (reactant.isEmpty() || fluid == null || energy < 10000 || energy > 200000000) { return false; } if (reactionExists(reactant, fluid)) { return false; } Reaction reaction = new Reaction(reactant, fluid, energy); reactionMap.put(asList(new ComparableItemStack(reactant).hashCode(), fluid.getName().hashCode()), reaction); validReactants.add(new ComparableItemStack(reactant)); validFluids.add(fluid.getName()); return true; }