package net.minecraft.village;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
public class MerchantRecipe
{
/** Item the Villager buys. */
private ItemStack itemToBuy;
/** Second Item the Villager buys. */
private ItemStack secondItemToBuy;
/** Item the Villager sells. */
private ItemStack itemToSell;
/**
* Saves how much has been tool used when put into to slot to be enchanted.
*/
private int toolUses;
/** Maximum times this trade can be used. */
private int maxTradeUses;
public MerchantRecipe(NBTTagCompound par1NBTTagCompound)
{
this.readFromTags(par1NBTTagCompound);
}
public MerchantRecipe(ItemStack par1ItemStack, ItemStack par2ItemStack, ItemStack par3ItemStack)
{
this.itemToBuy = par1ItemStack;
this.secondItemToBuy = par2ItemStack;
this.itemToSell = par3ItemStack;
this.maxTradeUses = 7;
}
public MerchantRecipe(ItemStack par1ItemStack, ItemStack par2ItemStack)
{
this(par1ItemStack, (ItemStack)null, par2ItemStack);
}
public MerchantRecipe(ItemStack par1ItemStack, Item par2Item)
{
this(par1ItemStack, new ItemStack(par2Item));
}
/**
* Gets the itemToBuy.
*/
public ItemStack getItemToBuy()
{
return this.itemToBuy;
}
/**
* Gets secondItemToBuy.
*/
public ItemStack getSecondItemToBuy()
{
return this.secondItemToBuy;
}
/**
* Gets if Villager has secondItemToBuy.
*/
public boolean hasSecondItemToBuy()
{
return this.secondItemToBuy != null;
}
/**
* Gets itemToSell.
*/
public ItemStack getItemToSell()
{
return this.itemToSell;
}
/**
* checks if both the first and second ItemToBuy IDs are the same
*/
public boolean hasSameIDsAs(MerchantRecipe par1MerchantRecipe)
{
return this.itemToBuy.itemID == par1MerchantRecipe.itemToBuy.itemID && this.itemToSell.itemID == par1MerchantRecipe.itemToSell.itemID ? this.secondItemToBuy == null && par1MerchantRecipe.secondItemToBuy == null || this.secondItemToBuy != null && par1MerchantRecipe.secondItemToBuy != null && this.secondItemToBuy.itemID == par1MerchantRecipe.secondItemToBuy.itemID : false;
}
/**
* checks first and second ItemToBuy ID's and count. Calls hasSameIDs
*/
public boolean hasSameItemsAs(MerchantRecipe par1MerchantRecipe)
{
return this.hasSameIDsAs(par1MerchantRecipe) && (this.itemToBuy.stackSize < par1MerchantRecipe.itemToBuy.stackSize || this.secondItemToBuy != null && this.secondItemToBuy.stackSize < par1MerchantRecipe.secondItemToBuy.stackSize);
}
public void incrementToolUses()
{
++this.toolUses;
}
public void func_82783_a(int par1)
{
this.maxTradeUses += par1;
}
public boolean func_82784_g()
{
return this.toolUses >= this.maxTradeUses;
}
@SideOnly(Side.CLIENT)
public void func_82785_h()
{
this.toolUses = this.maxTradeUses;
}
public void readFromTags(NBTTagCompound par1NBTTagCompound)
{
NBTTagCompound var2 = par1NBTTagCompound.getCompoundTag("buy");
this.itemToBuy = ItemStack.loadItemStackFromNBT(var2);
NBTTagCompound var3 = par1NBTTagCompound.getCompoundTag("sell");
this.itemToSell = ItemStack.loadItemStackFromNBT(var3);
if (par1NBTTagCompound.hasKey("buyB"))
{
this.secondItemToBuy = ItemStack.loadItemStackFromNBT(par1NBTTagCompound.getCompoundTag("buyB"));
}
if (par1NBTTagCompound.hasKey("uses"))
{
this.toolUses = par1NBTTagCompound.getInteger("uses");
}
if (par1NBTTagCompound.hasKey("maxUses"))
{
this.maxTradeUses = par1NBTTagCompound.getInteger("maxUses");
}
else
{
this.maxTradeUses = 7;
}
}
public NBTTagCompound writeToTags()
{
NBTTagCompound var1 = new NBTTagCompound();
var1.setCompoundTag("buy", this.itemToBuy.writeToNBT(new NBTTagCompound("buy")));
var1.setCompoundTag("sell", this.itemToSell.writeToNBT(new NBTTagCompound("sell")));
if (this.secondItemToBuy != null)
{
var1.setCompoundTag("buyB", this.secondItemToBuy.writeToNBT(new NBTTagCompound("buyB")));
}
var1.setInteger("uses", this.toolUses);
var1.setInteger("maxUses", this.maxTradeUses);
return var1;
}
}