initial commit
This commit is contained in:
parent
3c9ee26b06
commit
22186c33b9
1458 changed files with 282792 additions and 0 deletions
132
java/src/game/village/MerchantRecipeList.java
Executable file
132
java/src/game/village/MerchantRecipeList.java
Executable file
|
@ -0,0 +1,132 @@
|
|||
package game.village;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import game.item.ItemStack;
|
||||
import game.nbt.NBTTagCompound;
|
||||
import game.nbt.NBTTagList;
|
||||
import game.nbt.NBTUtil;
|
||||
|
||||
public class MerchantRecipeList extends ArrayList<MerchantRecipe>
|
||||
{
|
||||
public MerchantRecipeList()
|
||||
{
|
||||
}
|
||||
|
||||
public MerchantRecipeList(NBTTagCompound compound)
|
||||
{
|
||||
this.readRecipiesFromTags(compound);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 merchantrecipe1 = (MerchantRecipe)this.get(p_77203_3_);
|
||||
return !this.func_181078_a(p_77203_1_, merchantrecipe1.getItemToBuy()) || (p_77203_2_ != null || merchantrecipe1.hasSecondItemToBuy()) && (!merchantrecipe1.hasSecondItemToBuy() || !this.func_181078_a(p_77203_2_, merchantrecipe1.getSecondItemToBuy())) || p_77203_1_.stackSize < merchantrecipe1.getItemToBuy().stackSize || merchantrecipe1.hasSecondItemToBuy() && p_77203_2_.stackSize < merchantrecipe1.getSecondItemToBuy().stackSize ? null : merchantrecipe1;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < this.size(); ++i)
|
||||
{
|
||||
MerchantRecipe merchantrecipe = (MerchantRecipe)this.get(i);
|
||||
|
||||
if (this.func_181078_a(p_77203_1_, merchantrecipe.getItemToBuy()) && p_77203_1_.stackSize >= merchantrecipe.getItemToBuy().stackSize && (!merchantrecipe.hasSecondItemToBuy() && p_77203_2_ == null || merchantrecipe.hasSecondItemToBuy() && this.func_181078_a(p_77203_2_, merchantrecipe.getSecondItemToBuy()) && p_77203_2_.stackSize >= merchantrecipe.getSecondItemToBuy().stackSize))
|
||||
{
|
||||
return merchantrecipe;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean func_181078_a(ItemStack p_181078_1_, ItemStack p_181078_2_)
|
||||
{
|
||||
return ItemStack.areItemsEqual(p_181078_1_, p_181078_2_) && (!p_181078_2_.hasTagCompound() || p_181078_1_.hasTagCompound() && NBTUtil.compareTags(p_181078_2_.getTagCompound(), p_181078_1_.getTagCompound(), false));
|
||||
}
|
||||
|
||||
// public void writeToBuf(PacketBuffer buffer)
|
||||
// {
|
||||
// buffer.writeByte((byte)(this.size() & 255));
|
||||
//
|
||||
// for (int i = 0; i < this.size(); ++i)
|
||||
// {
|
||||
// MerchantRecipe merchantrecipe = (MerchantRecipe)this.get(i);
|
||||
// buffer.writeItemStackToBuffer(merchantrecipe.getItemToBuy());
|
||||
// buffer.writeItemStackToBuffer(merchantrecipe.getItemToSell());
|
||||
// ItemStack itemstack = merchantrecipe.getSecondItemToBuy();
|
||||
// buffer.writeBoolean(itemstack != null);
|
||||
//
|
||||
// if (itemstack != null)
|
||||
// {
|
||||
// buffer.writeItemStackToBuffer(itemstack);
|
||||
// }
|
||||
//
|
||||
// buffer.writeBoolean(merchantrecipe.isRecipeDisabled());
|
||||
// buffer.writeInt(merchantrecipe.getToolUses());
|
||||
// buffer.writeInt(merchantrecipe.getMaxTradeUses());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public static MerchantRecipeList readFromBuf(PacketBuffer buffer) throws IOException
|
||||
// {
|
||||
// MerchantRecipeList merchantrecipelist = new MerchantRecipeList();
|
||||
// int i = buffer.readByte() & 255;
|
||||
//
|
||||
// for (int j = 0; j < i; ++j)
|
||||
// {
|
||||
// ItemStack itemstack = buffer.readItemStackFromBuffer();
|
||||
// ItemStack itemstack1 = buffer.readItemStackFromBuffer();
|
||||
// ItemStack itemstack2 = null;
|
||||
//
|
||||
// if (buffer.readBoolean())
|
||||
// {
|
||||
// itemstack2 = buffer.readItemStackFromBuffer();
|
||||
// }
|
||||
//
|
||||
// boolean flag = buffer.readBoolean();
|
||||
// int k = buffer.readInt();
|
||||
// int l = buffer.readInt();
|
||||
// MerchantRecipe merchantrecipe = new MerchantRecipe(itemstack, itemstack2, itemstack1, k, l);
|
||||
//
|
||||
// if (flag)
|
||||
// {
|
||||
// merchantrecipe.compensateToolUses();
|
||||
// }
|
||||
//
|
||||
// merchantrecipelist.add(merchantrecipe);
|
||||
// }
|
||||
//
|
||||
// return merchantrecipelist;
|
||||
// }
|
||||
|
||||
public void readRecipiesFromTags(NBTTagCompound compound)
|
||||
{
|
||||
NBTTagList nbttaglist = compound.getTagList("Recipes", 10);
|
||||
|
||||
for (int i = 0; i < nbttaglist.tagCount(); ++i)
|
||||
{
|
||||
NBTTagCompound nbttagcompound = nbttaglist.getCompoundTagAt(i);
|
||||
this.add(new MerchantRecipe(nbttagcompound));
|
||||
}
|
||||
}
|
||||
|
||||
public NBTTagCompound getRecipiesAsTags()
|
||||
{
|
||||
NBTTagCompound nbttagcompound = new NBTTagCompound();
|
||||
NBTTagList nbttaglist = new NBTTagList();
|
||||
|
||||
for (int i = 0; i < this.size(); ++i)
|
||||
{
|
||||
MerchantRecipe merchantrecipe = (MerchantRecipe)this.get(i);
|
||||
nbttaglist.appendTag(merchantrecipe.writeToTags());
|
||||
}
|
||||
|
||||
nbttagcompound.setTag("Recipes", nbttaglist);
|
||||
return nbttagcompound;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue