From a6a3bfa6f313adba5afe6eb4a0da049a8d641cfc Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Fri, 5 Jun 2015 01:53:14 +0100 Subject: Stuff! --- .../jewelrycraft/worldGen/ChestGeneration.java | 103 +++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/main/java/darkknight/jewelrycraft/worldGen/ChestGeneration.java (limited to 'src/main/java/darkknight/jewelrycraft/worldGen/ChestGeneration.java') diff --git a/src/main/java/darkknight/jewelrycraft/worldGen/ChestGeneration.java b/src/main/java/darkknight/jewelrycraft/worldGen/ChestGeneration.java new file mode 100644 index 0000000..f8eb9d5 --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/worldGen/ChestGeneration.java @@ -0,0 +1,103 @@ +package darkknight.jewelrycraft.worldGen; + +import java.util.Random; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraftforge.common.ChestGenHooks; +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; + +/** + * @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++) addItemToDifferentPlaces(new WeightedRandomChestContent(new ItemStack(BlockList.crystal, 1, i), 1, 4, 4), 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); + } +} -- cgit v1.2.3