package darkknight.jewelrycraft.worldGen.village; import java.util.Random; import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; import darkknight.jewelrycraft.block.BlockList; import darkknight.jewelrycraft.item.ItemList; import darkknight.jewelrycraft.item.ItemMolds; import darkknight.jewelrycraft.util.JewelryNBT; import darkknight.jewelrycraft.util.JewelrycraftUtil; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.init.Blocks; 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; public class JCTrades implements IVillageTradeHandler { Item[] jewelry = new Item[] { ItemList.ring, ItemList.necklace, ItemList.bracelet, ItemList.earrings }; public JCTrades() { super(); } /** * @param villager * @param recipeList * @param random */ @Override public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) { if (villager.getProfession() == 3000) { ItemStack ingredient = null; ItemStack ingredient2 = null; ItemStack result; int type = random.nextInt(12); switch (type) { case 0: if (JewelrycraftUtil.metal.size() > 0) { result = JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size())); result.stackSize = 5 + random.nextInt(5); ingredient = new ItemStack(Items.emerald, 2 + random.nextInt(7)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 2 + random.nextInt(2)); break; } case 1: { result = new ItemStack(ItemList.molds, 5 + random.nextInt(7), random.nextInt(ItemMolds.moldsItemNames.length)); ingredient = new ItemStack(Items.emerald, 1); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 1 + random.nextInt(2)); break; } case 2: { int number = random.nextInt(3); result = new ItemStack(BlockList.displayer, 1 + number); ingredient = new ItemStack(Blocks.emerald_block, 2 + number * 3 + random.nextInt(2)); ingredient2 = new ItemStack(Items.emerald, 3 + number + random.nextInt(8)); break; } case 3: { result = new ItemStack(BlockList.jewelCraftingTable); ingredient = new ItemStack(Items.emerald, 1 + random.nextInt(2)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 1 + random.nextInt(2)); break; } case 4: { result = new ItemStack(BlockList.shadowOre, 1 + random.nextInt(6)); ingredient = new ItemStack(Items.emerald, 3 + random.nextInt(4)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 3 + random.nextInt(4)); break; } case 5: { result = new ItemStack(BlockList.molder, 5 + random.nextInt(5)); ingredient = new ItemStack(Items.emerald, 1); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 1); break; } case 6: { result = new ItemStack(BlockList.smelter); ingredient = new ItemStack(Items.emerald, 1 + random.nextInt(2)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 1 + random.nextInt(2)); break; } case 7: if (JewelrycraftUtil.gem.size() > 0) { int end = random.nextInt(JewelrycraftUtil.gem.size()); result = JewelrycraftUtil.gem.get(end); result.stackSize = 1 + random.nextInt(JewelrycraftUtil.gem.size() - end); if (JewelrycraftUtil.gem.size() - 1 - end >= 1) { int value = 1 + end; if (value > 64) value = 64; ingredient = new ItemStack(Items.emerald, 2 + random.nextInt(value)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 2 + random.nextInt(value)); } else { ingredient = new ItemStack(Blocks.emerald_block, 16 + random.nextInt(32)); ingredient2 = new ItemStack(Blocks.emerald_block, 8 + random.nextInt(48)); } break; } case 8: if (JewelrycraftUtil.ores.size() > 0) { result = JewelrycraftUtil.ores.get(random.nextInt(JewelrycraftUtil.ores.size())); result.stackSize = 3 + random.nextInt(3); ingredient = new ItemStack(Items.emerald, 2 + random.nextInt(5)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 2 + random.nextInt(6)); break; } case 9: { result = new ItemStack(ItemList.guide, 1); ingredient = new ItemStack(Items.emerald, 1); break; } default: { result = new ItemStack(jewelry[random.nextInt(4)], 1, 0); int randValue = random.nextInt(4); if (JewelrycraftUtil.metal.size() > 0) JewelryNBT.addMetal(result, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size()))); if (JewelrycraftUtil.objects.size() > 0) JewelryNBT.addModifiers(result, JewelrycraftUtil.addRandomModifiers(randValue)); if (JewelrycraftUtil.gem.size() > 0) JewelryNBT.addGem(result, JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size()))); ingredient = new ItemStack(Items.emerald, 16 + random.nextInt(20)); ingredient2 = new ItemStack(Blocks.emerald_block, 2 + randValue); } } recipeList.addToListWithCheck(new MerchantRecipe(ingredient, ingredient2, result)); } } }