Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / WeightedRandom.java
package net.minecraft.server;

import java.util.List;
import java.util.Random;

public class WeightedRandom {

    public static int a(List<? extends WeightedRandom.WeightedRandomChoice> list) {
        int i = 0;
        int j = 0;

        for (int k = list.size(); j < k; ++j) {
            WeightedRandom.WeightedRandomChoice weightedrandom_weightedrandomchoice = (WeightedRandom.WeightedRandomChoice) list.get(j);

            i += weightedrandom_weightedrandomchoice.a;
        }

        return i;
    }

    public static <T extends WeightedRandom.WeightedRandomChoice> T a(Random random, List<T> list, int i) {
        if (i <= 0) {
            throw (IllegalArgumentException) SystemUtils.c(new IllegalArgumentException());
        } else {
            int j = random.nextInt(i);

            return a(list, j);
        }
    }

    public static <T extends WeightedRandom.WeightedRandomChoice> T a(List<T> list, int i) {
        int j = 0;

        for (int k = list.size(); j < k; ++j) {
            T t0 = (WeightedRandom.WeightedRandomChoice) list.get(j);

            i -= t0.a;
            if (i < 0) {
                return t0;
            }
        }

        return null;
    }

    public static <T extends WeightedRandom.WeightedRandomChoice> T a(Random random, List<T> list) {
        return a(random, list, a(list));
    }

    public static class WeightedRandomChoice {

        protected final int a;

        public WeightedRandomChoice(int i) {
            this.a = i;
        }
    }
}