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: *
*
*/ 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); } }