@Override
public void onCraftMatrixChanged(IInventory par1IInventory){
- ChemiCraftAPI.instance.getCraftingManager().chemicalCrafting(this.invm, this.invr, this.invn);
+ this.useNBT = ChemiCraftAPI.instance.getCraftingManager().chemicalCrafting(this.invm, this.invr, this.invn);
}
@Override
super.onCraftGuiClosed(par1EntityPlayer);
}
-
+ @Override
+ public ItemStack slotClick(int par1, int par2, boolean par3, EntityPlayer par4EntityPlayer)
+ {
+ if(par1 == 12){
+ if(this.invr.getStackInSlot(0) == null) return super.slotClick(par1, par2, par3, par4EntityPlayer);
+ ItemStack var1 = par4EntityPlayer.inventory.getItemStack();
+ if(var1 != null){
+ if(var1.stackSize + this.invr.getStackInSlot(0).stackSize >= var1.getMaxStackSize()) return super.slotClick(par1, par2, par3, par4EntityPlayer);
+ }
+ for(int i = 0;i < this.invm.getSizeInventory();i++){
+ if(this.invm.getStackInSlot(i) != null){
+ if(this.invm.getStackInSlot(i).stackSize > 1){
+ this.invm.getStackInSlot(i).stackSize--;
+ }else{
+ this.invm.setInventorySlotContents(i, null);
+ }
+ }
+ }
+ ItemStack[] matchNBT = new ItemStack[this.invn.getSizeInventory()];
+ for(int i = 0;i < this.invn.getSizeInventory();i++){
+ matchNBT[i] = this.invn.getStackInSlot(i);
+ }
+ if(this.useNBT == null) return super.slotClick(par1, par2, par3, par4EntityPlayer);
+ ItemStack[] useItems = this.useNBT.getMatchItems(matchNBT);
+ for(int i = 0;i < useItems.length;i++){
+ if(useItems != null){
+ if(useItems[i] != null){
+ this.invn.setInventorySlotContents(i, null);
+ }
+ }
+ }
+ }
+ return super.slotClick(par1, par2, par3, par4EntityPlayer);
+ }
@Override
public boolean canInteractWith(EntityPlayer par1EntityPlayer){
}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) return null;
+ if(this.material[i] != null && invItems[i] == null) return null;
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;
@Override
public ItemStack[] getMatchItems(ItemStack[] materials) {
- return null;
+ ItemStack[] var1 = new ItemStack[materials.length];
+ for(int i = 0;i < var1.length;i++){
+ if(materials[i] != null){
+ if(materials[i].getItemDamage() == ChemiCraft.HYDROGEN){
+ var1[i] = materials[i];
+ }else if(materials[i].getItemDamage() == ChemiCraft.CARBON){
+ var1[i] = materials[i];
+ }else if(materials[i].getItemDamage() == ChemiCraft.URANIUM){
+ var1[i] = materials[i];
+ }else{
+ var1[i] = null;
+ }
+ }else{
+ var1[i] = null;
+ }
+ }
+ return var1;
}
}