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
|
package darkknight.jewelrycraft.worldGen;
import java.util.Random;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import darkknight.jewelrycraft.block.BlockList;
import darkknight.jewelrycraft.item.ItemList;
import darkknight.jewelrycraft.util.JewelryNBT;
import darkknight.jewelrycraft.util.JewelrycraftUtil;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.WeightedRandomChestContent;
import net.minecraftforge.common.ChestGenHooks;
/**
* @author Sorin
*
*/
public class ChestGeneration
{
static Item[] jewelry = new Item[]{ItemList.ring, ItemList.necklace, ItemList.bracelet, ItemList.earrings};
static Random random = new Random();
public static void preInit(FMLPreInitializationEvent e)
{
addItemToDifferentPlaces(new WeightedRandomChestContent(new ItemStack(ItemList.thiefGloves), 1, 1, 2), true, true, false, false, true);
addItemToDifferentPlaces(new WeightedRandomChestContent(new ItemStack(ItemList.guide), 1, 1, 7), true, true, true, true, true, false, true, true);
addVillageBlacksmithLoot(new WeightedRandomChestContent(new ItemStack(ItemList.shadowIngot), 1, 4, 5));
for(int i = 0; i < 16 && i%3==0; i++) addItemToDifferentPlaces(new WeightedRandomChestContent(new ItemStack(BlockList.crystal, 1, i), 1, 3, 3), true, true, true, true);
ItemStack special = new ItemStack(jewelry[random.nextInt(4)]);
int randValue = random.nextInt(4);
if(JewelrycraftUtil.metal.size() > 0) JewelryNBT.addMetal(special, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size())));
if(JewelrycraftUtil.objects.size() > 0) JewelryNBT.addModifiers(special, JewelrycraftUtil.addRandomModifiers(randValue));
if(JewelrycraftUtil.gem.size() > 0) JewelryNBT.addGem(special, JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size())));
addItemToDifferentPlaces(new WeightedRandomChestContent(special, 1, 1, 1), true, true, true, true);
}
/**
* The booleans determine in which places should the items be added. The order is like so:
* <p><ul>
* <li> Dungeon
* <li> Stronhold
* <li> Pyramid
* <li> Mineshaft
* <li> Village Blacksmith
* <li> Dispenser
* <li> Bonus Chest
* <li> Stronghold Library
* </ul><p>
*/
public static void addItemToDifferentPlaces(WeightedRandomChestContent item, Boolean ... options)
{
if(options.length > 0 && options[0]) addDungeonLoot(item);
if(options.length > 1 && options[1]) addStrongholdLoot(item);
if(options.length > 2 && options[2]) addPyramidLoot(item);
if(options.length > 3 && options[3]) addMineshaftLoot(item);
if(options.length > 4 && options[4]) addVillageBlacksmithLoot(item);
if(options.length > 5 && options[5]) addDispenserLoot(item);
if(options.length > 6 && options[6]) addBonusChestLoot(item);
if(options.length > 7 && options[7]) addStrongholdLibraryLoot(item);
}
public static void addDungeonLoot(WeightedRandomChestContent item)
{
ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, item);
}
public static void addStrongholdLoot(WeightedRandomChestContent item)
{
ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_CORRIDOR, item);
ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_CROSSING, item);
}
public static void addPyramidLoot(WeightedRandomChestContent item)
{
ChestGenHooks.addItem(ChestGenHooks.PYRAMID_DESERT_CHEST, item);
ChestGenHooks.addItem(ChestGenHooks.PYRAMID_JUNGLE_CHEST, item);
}
public static void addMineshaftLoot(WeightedRandomChestContent item)
{
ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, item);
}
public static void addVillageBlacksmithLoot(WeightedRandomChestContent item)
{
ChestGenHooks.addItem(ChestGenHooks.VILLAGE_BLACKSMITH, item);
}
public static void addDispenserLoot(WeightedRandomChestContent item)
{
ChestGenHooks.addItem(ChestGenHooks.PYRAMID_JUNGLE_DISPENSER, item);
}
public static void addBonusChestLoot(WeightedRandomChestContent item)
{
ChestGenHooks.addItem(ChestGenHooks.BONUS_CHEST, item);
}
public static void addStrongholdLibraryLoot(WeightedRandomChestContent item)
{
ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_LIBRARY, item);
}
}
|