package net.minecraft.village;
import java.util.ArrayList;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.PacketBuffer;
public class MerchantRecipeList extends ArrayList
{
private static final String __OBFID = "CL_00000127";
public MerchantRecipeList() {}
public MerchantRecipeList(NBTTagCompound p_i1944_1_)
{
this.readRecipiesFromTags(p_i1944_1_);
}
/**
* can par1,par2 be used to in crafting recipe par3
*/
public MerchantRecipe canRecipeBeUsed(ItemStack p_77203_1_, ItemStack p_77203_2_, int p_77203_3_)
{
if (p_77203_3_ > 0 && p_77203_3_ < this.size())
{
MerchantRecipe var6 = (MerchantRecipe)this.get(p_77203_3_);
return ItemStack.areItemsEqual(p_77203_1_, var6.getItemToBuy()) && (p_77203_2_ == null && !var6.hasSecondItemToBuy() || var6.hasSecondItemToBuy() && ItemStack.areItemsEqual(p_77203_2_, var6.getSecondItemToBuy())) && p_77203_1_.stackSize >= var6.getItemToBuy().stackSize && (!var6.hasSecondItemToBuy() || p_77203_2_.stackSize >= var6.getSecondItemToBuy().stackSize) ? var6 : null;
}
else
{
for (int var4 = 0; var4 < this.size(); ++var4)
{
MerchantRecipe var5 = (MerchantRecipe)this.get(var4);
if (ItemStack.areItemsEqual(p_77203_1_, var5.getItemToBuy()) && p_77203_1_.stackSize >= var5.getItemToBuy().stackSize && (!var5.hasSecondItemToBuy() && p_77203_2_ == null || var5.hasSecondItemToBuy() && ItemStack.areItemsEqual(p_77203_2_, var5.getSecondItemToBuy()) && p_77203_2_.stackSize >= var5.getSecondItemToBuy().stackSize))
{
return var5;
}
}
return null;
}
}
public void func_151391_a(PacketBuffer p_151391_1_)
{
p_151391_1_.writeByte((byte)(this.size() & 255));
for (int var2 = 0; var2 < this.size(); ++var2)
{
MerchantRecipe var3 = (MerchantRecipe)this.get(var2);
p_151391_1_.writeItemStackToBuffer(var3.getItemToBuy());
p_151391_1_.writeItemStackToBuffer(var3.getItemToSell());
ItemStack var4 = var3.getSecondItemToBuy();
p_151391_1_.writeBoolean(var4 != null);
if (var4 != null)
{
p_151391_1_.writeItemStackToBuffer(var4);
}
p_151391_1_.writeBoolean(var3.isRecipeDisabled());
p_151391_1_.writeInt(var3.func_180321_e());
p_151391_1_.writeInt(var3.func_180320_f());
}
}
public void readRecipiesFromTags(NBTTagCompound p_77201_1_)
{
NBTTagList var2 = p_77201_1_.getTagList("Recipes", 10);
for (int var3 = 0; var3 < var2.tagCount(); ++var3)
{
NBTTagCompound var4 = var2.getCompoundTagAt(var3);
this.add(new MerchantRecipe(var4));
}
}
public NBTTagCompound getRecipiesAsTags()
{
NBTTagCompound var1 = new NBTTagCompound();
NBTTagList var2 = new NBTTagList();
for (int var3 = 0; var3 < this.size(); ++var3)
{
MerchantRecipe var4 = (MerchantRecipe)this.get(var3);
var2.appendTag(var4.writeToTags());
}
var1.setTag("Recipes", var2);
return var1;
}
}