001 package net.minecraft.src;
002
003 import java.util.Random;
004
005 import net.minecraftforge.common.ChestGenHooks;
006
007 public class WeightedRandomChestContent extends WeightedRandomItem
008 {
009 /** The Item/Block ID to generate in the Chest. */
010 private int theItemId;
011
012 /** The Item damage/metadata. */
013 private int theItemDamage;
014
015 /** The minimum chance of item generating. */
016 private int theMinimumChanceToGenerateItem;
017
018 /** The maximum chance of item generating. */
019 private int theMaximumChanceToGenerateItem;
020
021 public final ItemStack itemStack;
022
023 public WeightedRandomChestContent(int par1, int par2, int par3, int par4, int par5)
024 {
025 super(par5);
026 this.theItemId = par1;
027 this.theItemDamage = par2;
028 this.theMinimumChanceToGenerateItem = par3;
029 this.theMaximumChanceToGenerateItem = par4;
030 itemStack = new ItemStack(par1, 1, par2);
031 }
032
033 public WeightedRandomChestContent(ItemStack stack, int min, int max, int weight)
034 {
035 super(weight);
036 itemStack = stack;
037 theMinimumChanceToGenerateItem = min;
038 theMaximumChanceToGenerateItem = max;
039 }
040 /**
041 * Generates the Chest contents.
042 */
043 public static void generateChestContents(Random par0Random, WeightedRandomChestContent[] par1ArrayOfWeightedRandomChestContent, TileEntityChest par2TileEntityChest, int par3)
044 {
045 for (int var4 = 0; var4 < par3; ++var4)
046 {
047 WeightedRandomChestContent var5 = (WeightedRandomChestContent)WeightedRandom.getRandomItem(par0Random, par1ArrayOfWeightedRandomChestContent);
048 ItemStack[] stacks = ChestGenHooks.generateStacks(par0Random, var5.itemStack, var5.theMinimumChanceToGenerateItem, var5.theMinimumChanceToGenerateItem);
049
050 for (ItemStack item : stacks)
051 {
052 par2TileEntityChest.setInventorySlotContents(par0Random.nextInt(par2TileEntityChest.getSizeInventory()), item);
053 }
054 }
055 }
056
057 /**
058 * Generates the Dispenser contents.
059 */
060 public static void generateDispenserContents(Random par0Random, WeightedRandomChestContent[] par1ArrayOfWeightedRandomChestContent, TileEntityDispenser par2TileEntityDispenser, int par3)
061 {
062 for (int var4 = 0; var4 < par3; ++var4)
063 {
064 WeightedRandomChestContent var5 = (WeightedRandomChestContent)WeightedRandom.getRandomItem(par0Random, par1ArrayOfWeightedRandomChestContent);
065 ItemStack[] stacks = ChestGenHooks.generateStacks(par0Random, var5.itemStack, var5.theMinimumChanceToGenerateItem, var5.theMinimumChanceToGenerateItem);
066
067 for (ItemStack item : stacks)
068 {
069 par2TileEntityDispenser.setInventorySlotContents(par0Random.nextInt(par2TileEntityDispenser.getSizeInventory()), item);
070 }
071 }
072 }
073 }