+ public ChemicalNBTRecipe nbtMatch(InventoryChemicalCraftingMaterial par1IInventory){
+ ArrayList<ItemStack> invItemsArray = new ArrayList<ItemStack>();
+ ItemStack[] invItems;
+ for(int i = 0;i < par1IInventory.getSizeInventory();i++){
+ invItemsArray.add(par1IInventory.getStackInSlot(i));
+ }
+ invItems = invItemsArray.toArray(new ItemStack[invItemsArray.size()]);
+ invItems = (ItemStack[]) ChemiCraft.instance.arrayAuxiliary.deleteNull(invItems);
+
+ if(isSharpless){
+ Arrays.sort(invItems, new ComparatorItemStack());
+ Arrays.sort(this.material, new ComparatorItemStack());
+ if(invItems.length != this.material.length) return null;
+ for(int i = 0;i < this.material.length;i++){
+ if(this.material[i].itemID != invItems[i].itemID) return null;
+ if(this.material[i].getItemDamage() != invItems[i].getItemDamage()) return null;
+ }
+ return this.nbtRecipe;
+ }else{
+ if(this.material.length != invItems.length) return null;
+ for(int i = 0;i < this.material.length;i++){
+ if(this.material[i] != null && invItems[i] != null){
+ if(this.material[i].itemID != invItems[i].itemID) return null;
+ if(this.material[i].getItemDamage() != invItems[i].getItemDamage()) return null;
+ }
+ }
+ return this.nbtRecipe;
+ }