Exemplo n.º 1
0
  /**
   * based on the villagers profession add items, equipment, and recipies adds par1 random items to
   * the list of things that the villager wants to buy. (at most 1 of each wanted type is added)
   */
  private void addDefaultEquipmentAndRecipies(int par1) {
    if (this.buyingList != null) {
      this.field_82191_bN = MathHelper.sqrt_float((float) this.buyingList.size()) * 0.2F;
    } else {
      this.field_82191_bN = 0.0F;
    }

    MerchantRecipeList var2;
    var2 = new MerchantRecipeList();
    int var6;
    label50:
    switch (this.getProfession()) {
      case 0:
        addMerchantItem(var2, Item.wheat.itemID, this.rand, this.func_82188_j(0.9F));
        addMerchantItem(var2, Block.cloth.blockID, this.rand, this.func_82188_j(0.5F));
        addMerchantItem(var2, Item.chickenRaw.itemID, this.rand, this.func_82188_j(0.5F));
        addMerchantItem(var2, Item.fishCooked.itemID, this.rand, this.func_82188_j(0.4F));
        addBlacksmithItem(var2, Item.bread.itemID, this.rand, this.func_82188_j(0.9F));
        addBlacksmithItem(var2, Item.melon.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.appleRed.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.cookie.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.shears.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.flintAndSteel.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.chickenCooked.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.arrow.itemID, this.rand, this.func_82188_j(0.5F));

        if (this.rand.nextFloat() < this.func_82188_j(0.5F)) {
          var2.add(
              new MerchantRecipe(
                  new ItemStack(Block.gravel, 10),
                  new ItemStack(Item.emerald),
                  new ItemStack(Item.flint.itemID, 4 + this.rand.nextInt(2), 0)));
        }

        break;

      case 1:
        addMerchantItem(var2, Item.paper.itemID, this.rand, this.func_82188_j(0.8F));
        addMerchantItem(var2, Item.book.itemID, this.rand, this.func_82188_j(0.8F));
        addMerchantItem(var2, Item.writtenBook.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Block.bookShelf.blockID, this.rand, this.func_82188_j(0.8F));
        addBlacksmithItem(var2, Block.glass.blockID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.compass.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.pocketSundial.itemID, this.rand, this.func_82188_j(0.2F));

        if (this.rand.nextFloat() < this.func_82188_j(0.07F)) {
          Enchantment var8 =
              Enchantment.field_92090_c[this.rand.nextInt(Enchantment.field_92090_c.length)];
          int var10 =
              MathHelper.getRandomIntegerInRange(this.rand, var8.getMinLevel(), var8.getMaxLevel());
          ItemStack var11 = Item.enchantedBook.func_92111_a(new EnchantmentData(var8, var10));
          var6 = 2 + this.rand.nextInt(5 + var10 * 10) + 3 * var10;
          var2.add(
              new MerchantRecipe(
                  new ItemStack(Item.book), new ItemStack(Item.emerald, var6), var11));
        }

        break;

      case 2:
        addBlacksmithItem(var2, Item.eyeOfEnder.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.expBottle.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.redstone.itemID, this.rand, this.func_82188_j(0.4F));
        addBlacksmithItem(var2, Block.glowStone.blockID, this.rand, this.func_82188_j(0.3F));
        int[] var3 =
            new int[] {
              Item.swordIron.itemID,
              Item.swordDiamond.itemID,
              Item.plateIron.itemID,
              Item.plateDiamond.itemID,
              Item.axeIron.itemID,
              Item.axeDiamond.itemID,
              Item.pickaxeIron.itemID,
              Item.pickaxeDiamond.itemID
            };
        int[] var4 = var3;
        int var5 = var3.length;
        var6 = 0;

        while (true) {
          if (var6 >= var5) {
            break label50;
          }

          int var7 = var4[var6];

          if (this.rand.nextFloat() < this.func_82188_j(0.05F)) {
            var2.add(
                new MerchantRecipe(
                    new ItemStack(var7, 1, 0),
                    new ItemStack(Item.emerald, 2 + this.rand.nextInt(3), 0),
                    EnchantmentHelper.addRandomEnchantment(
                        this.rand, new ItemStack(var7, 1, 0), 5 + this.rand.nextInt(15))));
          }

          ++var6;
        }

      case 3:
        addMerchantItem(var2, Item.coal.itemID, this.rand, this.func_82188_j(0.7F));
        addMerchantItem(var2, Item.ingotIron.itemID, this.rand, this.func_82188_j(0.5F));
        addMerchantItem(var2, Item.ingotGold.itemID, this.rand, this.func_82188_j(0.5F));
        addMerchantItem(var2, Item.diamond.itemID, this.rand, this.func_82188_j(0.5F));
        addBlacksmithItem(var2, Item.swordIron.itemID, this.rand, this.func_82188_j(0.5F));
        addBlacksmithItem(var2, Item.swordDiamond.itemID, this.rand, this.func_82188_j(0.5F));
        addBlacksmithItem(var2, Item.axeIron.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.axeDiamond.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.pickaxeIron.itemID, this.rand, this.func_82188_j(0.5F));
        addBlacksmithItem(var2, Item.pickaxeDiamond.itemID, this.rand, this.func_82188_j(0.5F));
        addBlacksmithItem(var2, Item.shovelIron.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.shovelDiamond.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.hoeIron.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.hoeDiamond.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.bootsIron.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.bootsDiamond.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.helmetIron.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.helmetDiamond.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.plateIron.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.plateDiamond.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.legsIron.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.legsDiamond.itemID, this.rand, this.func_82188_j(0.2F));
        addBlacksmithItem(var2, Item.bootsChain.itemID, this.rand, this.func_82188_j(0.1F));
        addBlacksmithItem(var2, Item.helmetChain.itemID, this.rand, this.func_82188_j(0.1F));
        addBlacksmithItem(var2, Item.plateChain.itemID, this.rand, this.func_82188_j(0.1F));
        addBlacksmithItem(var2, Item.legsChain.itemID, this.rand, this.func_82188_j(0.1F));
        break;

      case 4:
        addMerchantItem(var2, Item.coal.itemID, this.rand, this.func_82188_j(0.7F));
        addMerchantItem(var2, Item.porkRaw.itemID, this.rand, this.func_82188_j(0.5F));
        addMerchantItem(var2, Item.beefRaw.itemID, this.rand, this.func_82188_j(0.5F));
        addBlacksmithItem(var2, Item.saddle.itemID, this.rand, this.func_82188_j(0.1F));
        addBlacksmithItem(var2, Item.plateLeather.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.bootsLeather.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.helmetLeather.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.legsLeather.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.porkCooked.itemID, this.rand, this.func_82188_j(0.3F));
        addBlacksmithItem(var2, Item.beefCooked.itemID, this.rand, this.func_82188_j(0.3F));
    }

    if (var2.isEmpty()) {
      addMerchantItem(var2, Item.ingotGold.itemID, this.rand, 1.0F);
    }

    Collections.shuffle(var2);

    if (this.buyingList == null) {
      this.buyingList = new MerchantRecipeList();
    }

    for (int var9 = 0; var9 < par1 && var9 < var2.size(); ++var9) {
      this.buyingList.addToListWithCheck((MerchantRecipe) var2.get(var9));
    }
  }