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