package net.minecraft.util; import java.util.Collection; import java.util.Iterator; import java.util.Random; public class WeightedRandom { /** * Returns the total weight of all items in a collection. */ public static int getTotalWeight(Collection par0Collection) { int var1 = 0; WeightedRandomItem var3; for (Iterator var2 = par0Collection.iterator(); var2.hasNext(); var1 += var3.itemWeight) { var3 = (WeightedRandomItem)var2.next(); } return var1; } /** * Returns a random choice from the input items, with a total weight value. */ public static WeightedRandomItem getRandomItem(Random par0Random, Collection par1Collection, int par2) { if (par2 <= 0) { throw new IllegalArgumentException(); } else { int var3 = par0Random.nextInt(par2); Iterator var4 = par1Collection.iterator(); WeightedRandomItem var5; do { if (!var4.hasNext()) { return null; } var5 = (WeightedRandomItem)var4.next(); var3 -= var5.itemWeight; } while (var3 >= 0); return var5; } } /** * Returns a random choice from the input items. */ public static WeightedRandomItem getRandomItem(Random par0Random, Collection par1Collection) { return getRandomItem(par0Random, par1Collection, getTotalWeight(par1Collection)); } /** * Returns the total weight of all items in a array. */ public static int getTotalWeight(WeightedRandomItem[] par0ArrayOfWeightedRandomItem) { int var1 = 0; WeightedRandomItem[] var2 = par0ArrayOfWeightedRandomItem; int var3 = par0ArrayOfWeightedRandomItem.length; for (int var4 = 0; var4 < var3; ++var4) { WeightedRandomItem var5 = var2[var4]; var1 += var5.itemWeight; } return var1; } /** * Returns a random choice from the input array of items, with a total weight value. */ public static WeightedRandomItem getRandomItem(Random par0Random, WeightedRandomItem[] par1ArrayOfWeightedRandomItem, int par2) { if (par2 <= 0) { throw new IllegalArgumentException(); } else { int var3 = par0Random.nextInt(par2); WeightedRandomItem[] var4 = par1ArrayOfWeightedRandomItem; int var5 = par1ArrayOfWeightedRandomItem.length; for (int var6 = 0; var6 < var5; ++var6) { WeightedRandomItem var7 = var4[var6]; var3 -= var7.itemWeight; if (var3 < 0) { return var7; } } return null; } } /** * Returns a random choice from the input items. */ public static WeightedRandomItem getRandomItem(Random par0Random, WeightedRandomItem[] par1ArrayOfWeightedRandomItem) { return getRandomItem(par0Random, par1ArrayOfWeightedRandomItem, getTotalWeight(par1ArrayOfWeightedRandomItem)); } }