package gregtech.api.objects; import java.util.ArrayList; import java.util.Random; import java.util.Set; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import gregtech.api.enums.GT_Values; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fluids.Fluid; public class GT_UO_Dimension { private BiMap fFluids; private int maxChance; public String Dimension; public GT_UO_Dimension(ConfigCategory aConfigCategory) { fFluids = HashBiMap.create(); Dimension = aConfigCategory.get("Dimension").getString(); maxChance = 0; //System.out.println("GT UO "+aConfigCategory.getName()+" Dimension:"+Dimension); for (int i = 0 ; i < aConfigCategory.getChildren().size(); i++) { GT_UO_Fluid fluid = new GT_UO_Fluid((ConfigCategory)aConfigCategory.getChildren().toArray()[i]); fFluids.put(fluid.Registry, fluid); maxChance += fluid.Chance; } } public GT_UO_Fluid getRandomFluid (Random aRandom) { int random = aRandom.nextInt(3); random = aRandom.nextInt(1000); int step = 0; for (BiMap.Entry fl : fFluids.entrySet()) { int chance = fl.getValue().Chance*1000/maxChance; if (random<=chance) return fl.getValue(); //System.out.println("GT UO "+fl.getValue().Registry+" Chance:"+chance+" Random:"+random); random-=chance; } return null; } }