GT5-Unofficial/src/main/java/gregtech/api/objects/GT_UO_Dimension.java

49 lines
1.4 KiB
Java
Raw Normal View History

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<String, GT_UO_Fluid> 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<String, GT_UO_Fluid> 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;
}
}