49 lines
1.4 KiB
Java
49 lines
1.4 KiB
Java
|
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;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|