package darkknight.jewelrycraft.worldGen.village; import java.util.Random; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.village.MerchantRecipe; import net.minecraft.village.MerchantRecipeList; import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; import darkknight.jewelrycraft.block.BlockList; import darkknight.jewelrycraft.item.ItemList; import darkknight.jewelrycraft.util.JewelryNBT; import darkknight.jewelrycraft.util.JewelrycraftUtil; public class JCTrades implements IVillageTradeHandler { public JCTrades() { super(); } @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: { result = JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size())); result.stackSize = 5 + random.nextInt(8); ingredient = new ItemStack(Items.emerald, 2 + random.nextInt(2)); 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(2)); ingredient = new ItemStack(Items.emerald, 1 + random.nextInt(1)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 1 + random.nextInt(2)); break; } case 2: { result = new ItemStack(ItemList.thiefGloves); ingredient = new ItemStack(Items.emerald, 16 + random.nextInt(8)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 8 + random.nextInt(4)); break; } case 3: { result = new ItemStack(BlockList.displayer, 1 + random.nextInt(6)); ingredient = new ItemStack(Items.emerald, 3 + random.nextInt(8)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 3 + random.nextInt(8)); break; } case 4: { 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 5: { result = new ItemStack(BlockList.shadowOre, 1 + random.nextInt(16)); ingredient = new ItemStack(Items.emerald, 3 + random.nextInt(4)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 3 + random.nextInt(4)); break; } case 6: { result = new ItemStack(BlockList.molder, 5 + random.nextInt(5)); ingredient = new ItemStack(Items.emerald, 1 + random.nextInt(1)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 1 + random.nextInt(1)); break; } case 7: { 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 8: { int end = random.nextInt(JewelrycraftUtil.modifiers.size()); result = JewelrycraftUtil.modifiers.get(end); if (JewelrycraftUtil.modifiers.size() - 1 - end >= 3) { result.stackSize = 1 + random.nextInt(JewelrycraftUtil.modifiers.size() - end); int value = end; if (value > 64) value = 64; ingredient = new ItemStack(Items.emerald, 3 + random.nextInt(value)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 4 + random.nextInt(value)); } else { result.stackSize = 1 + random.nextInt(7); ingredient = new ItemStack(Items.emerald, result.stackSize / 2 + 1 + random.nextInt(7)); ingredient2 = new ItemStack(Items.emerald, result.stackSize / 2 + 1 + random.nextInt(4)); } if (result.getMaxStackSize() <= 1) result.stackSize = 1; break; } case 9: { 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 = 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 10: { result = JewelrycraftUtil.ores.get(random.nextInt(JewelrycraftUtil.ores.size())); result.stackSize = 3 + random.nextInt(8); ingredient = new ItemStack(Items.emerald, 2 + random.nextInt(2)); if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 2 + random.nextInt(2)); break; } default: { result = new ItemStack(ItemList.ring, 1, 0); JewelryNBT.addMetal(result, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size()))); JewelryNBT.addModifiers(result, JewelrycraftUtil.addRandomModifiers()); JewelryNBT.addGem(result, JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size()))); // if (JewelryNBT.isModifierEffectType(result)) JewelryNBT.addMode(result, "Activated"); if (JewelryNBT.isGemX(result, new ItemStack(Items.nether_star)) && JewelryNBT.isModifierX(result, new ItemStack(Items.book))) JewelryNBT.addMode(result, "Disenchant"); ingredient = new ItemStack(Items.emerald, 16 + random.nextInt(20)); ingredient2 = new ItemStack(Blocks.emerald_block, 5 + random.nextInt(5)); } } recipeList.addToListWithCheck(new MerchantRecipe(ingredient, ingredient2, result)); } } }