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 }