package blusunrize.immersiveengineering.common.util;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.village.MerchantRecipe;
import net.minecraft.village.MerchantRecipeList;
import javax.annotation.Nonnull;
import java.util.Random;
/**
* @author BluSunrize - 23.07.2016
*/
public class IEVillagerTrades
{
public static class EmeraldForItemstack implements EntityVillager.ITradeList
{
public ItemStack buyingItem;
public EntityVillager.PriceInfo buyAmounts;
public EmeraldForItemstack(@Nonnull ItemStack item, @Nonnull EntityVillager.PriceInfo buyAmounts)
{
this.buyingItem = item;
this.buyAmounts = buyAmounts;
}
@Override
public void modifyMerchantRecipeList(MerchantRecipeList recipeList, Random random)
{
recipeList.add(new MerchantRecipe(Utils.copyStackWithAmount(this.buyingItem, this.buyAmounts.getPrice(random)), Items.EMERALD));
}
}
public static class ItemstackForEmerald implements EntityVillager.ITradeList
{
public ItemStack sellingItem;
public EntityVillager.PriceInfo priceInfo;
public ItemstackForEmerald(Item par1Item, EntityVillager.PriceInfo priceInfo)
{
this.sellingItem = new ItemStack(par1Item);
this.priceInfo = priceInfo;
}
public ItemstackForEmerald(ItemStack stack, EntityVillager.PriceInfo priceInfo)
{
this.sellingItem = stack;
this.priceInfo = priceInfo;
}
@Override
public void modifyMerchantRecipeList(MerchantRecipeList recipeList, Random random)
{
int i = 1;
if(this.priceInfo != null)
i = this.priceInfo.getPrice(random);
ItemStack itemstack;
ItemStack itemstack1;
if(i < 0)
{
itemstack = new ItemStack(Items.EMERALD);
itemstack1 = Utils.copyStackWithAmount(sellingItem, -i);
} else
{
itemstack = new ItemStack(Items.EMERALD, i, 0);
itemstack1 = Utils.copyStackWithAmount(sellingItem, 1);
}
recipeList.add(new MerchantRecipe(itemstack, itemstack1));
}
}
}