1 package pcc.chemicraft.util;
3 import java.util.ArrayList;
4 import java.util.Arrays;
6 import pcc.chemicraft.ChemiCraft;
7 import pcc.chemicraft.inventory.InventoryChemicalCraftingMaterial;
9 import net.minecraft.item.ItemStack;
10 <<<<<<< HEAD:common/pcc/chemicraft/util/MaterialRecipe.java
12 import pcc.chemicraft.ChemiCraft;
13 import pcc.chemicraft.inventory.InventoryChemicalCraftingMaterial;
14 >>>>>>> a5e4a5c40b9001657f1e36ece533651f63183fbe:common/pcc/chemicraft/util/MaterialRecipe.java
16 public class MaterialRecipe {
18 private ChemicalNBTRecipe nbtRecipe;
19 private ItemStack result;
20 private ItemStack[] material;
21 private boolean isSharpless = true;
23 public MaterialRecipe(ItemStack par1ItemStack, ItemStack[] par2ItemStacks, ChemicalNBTRecipe par3NBTRecipe, boolean par4){
24 this.result = par1ItemStack;
25 this.material = par2ItemStacks.clone();
26 this.nbtRecipe = par3NBTRecipe;
27 this.isSharpless = par4;
30 @SuppressWarnings("unchecked")
31 public ItemStack match(InventoryChemicalCraftingMaterial par1IInventory){
32 ArrayList<ItemStack> invItemsArray = new ArrayList<ItemStack>();
34 for(int i = 0;i < par1IInventory.getSizeInventory();i++){
35 invItemsArray.add(par1IInventory.getStackInSlot(i));
37 invItems = invItemsArray.toArray(new ItemStack[invItemsArray.size()]);
40 Arrays.sort(invItems, new ComparatorItemStack());
41 Arrays.sort(this.material, new ComparatorItemStack());
42 invItems = (ItemStack[]) ChemiCraft.instance.arrayAuxiliary.deleteNull(invItems);
43 if(invItems.length != this.material.length) return null;
44 for(int i = 0;i < this.material.length;i++){
45 if(this.material[i].itemID != invItems[i].itemID) return null;
46 if(this.material[i].getItemDamage() != invItems[i].getItemDamage()) return null;
50 if(this.material.length != invItems.length) return null;
51 for(int i = 0;i < this.material.length;i++){
52 if(this.material[i] == null && invItems[i] != null) return null;
53 if(this.material[i] != null && invItems[i] == null) return null;
54 if(this.material[i] != null && invItems[i] != null){
55 if(this.material[i].itemID != invItems[i].itemID) return null;
56 if(this.material[i].getItemDamage() != invItems[i].getItemDamage()) return null;
63 @SuppressWarnings("unchecked")
64 public ChemicalNBTRecipe nbtMatch(InventoryChemicalCraftingMaterial par1IInventory){
65 ArrayList<ItemStack> invItemsArray = new ArrayList<ItemStack>();
67 for(int i = 0;i < par1IInventory.getSizeInventory();i++){
68 invItemsArray.add(par1IInventory.getStackInSlot(i));
70 invItems = invItemsArray.toArray(new ItemStack[invItemsArray.size()]);
73 Arrays.sort(invItems, new ComparatorItemStack());
74 Arrays.sort(this.material, new ComparatorItemStack());
75 invItems = (ItemStack[]) ChemiCraft.instance.arrayAuxiliary.deleteNull(invItems);
76 if(invItems.length != this.material.length) return null;
77 for(int i = 0;i < this.material.length;i++){
78 if(this.material[i].itemID != invItems[i].itemID) return null;
79 if(this.material[i].getItemDamage() != invItems[i].getItemDamage()) return null;
81 System.out.println(this.nbtRecipe);
82 return this.nbtRecipe;
84 if(this.material.length != invItems.length) return null;
85 for(int i = 0;i < this.material.length;i++){
86 if(this.material[i] == null && invItems[i] != null) return null;
87 if(this.material[i] != null && invItems[i] == null) return null;
88 if(this.material[i] != null && invItems[i] != null){
89 if(this.material[i].itemID != invItems[i].itemID) return null;
90 if(this.material[i].getItemDamage() != invItems[i].getItemDamage()) return null;
93 return this.nbtRecipe;