aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/objects/GT_UO_Dimension.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/objects/GT_UO_Dimension.java')
-rw-r--r--src/main/java/gregtech/api/objects/GT_UO_Dimension.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/objects/GT_UO_Dimension.java b/src/main/java/gregtech/api/objects/GT_UO_Dimension.java
new file mode 100644
index 0000000000..ffad72868c
--- /dev/null
+++ b/src/main/java/gregtech/api/objects/GT_UO_Dimension.java
@@ -0,0 +1,52 @@
+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 = "null";
+
+ public GT_UO_Dimension(ConfigCategory aConfigCategory) {
+ fFluids = HashBiMap.create();
+ if (aConfigCategory.containsKey("Dimension"))
+ {
+ aConfigCategory.get("Dimension").comment = "Dimension ID or Class Name";
+ 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;
+
+ }
+
+}