summaryrefslogtreecommitdiff
path: root/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java
blob: a3f71588c1258b0c38aa31a5b58caa7752747f65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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.item.ItemMolds;
import darkknight.jewelrycraft.util.JewelryNBT;
import darkknight.jewelrycraft.util.JewelrycraftUtil;

public class JCTrades implements IVillageTradeHandler
{
    
    /**
     * 
     */
    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:{
                    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:{
                    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 8:{
                    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(ItemList.ring, 1, 0);
                    int randValue = random.nextInt(4);
                    JewelryNBT.addMetal(result, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size())));
                    JewelryNBT.addModifiers(result, JewelrycraftUtil.addRandomModifiers(randValue));
                    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));
        }
    }
}