aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/objects/GTUODimension.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/objects/GTUODimension.java')
-rw-r--r--src/main/java/gregtech/api/objects/GTUODimension.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/objects/GTUODimension.java b/src/main/java/gregtech/api/objects/GTUODimension.java
new file mode 100644
index 0000000000..2fe10196bd
--- /dev/null
+++ b/src/main/java/gregtech/api/objects/GTUODimension.java
@@ -0,0 +1,54 @@
+package gregtech.api.objects;
+
+import java.util.Random;
+
+import net.minecraftforge.common.config.ConfigCategory;
+
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+
+public class GTUODimension {
+
+ private final BiMap<String, GTUOFluid> fFluids;
+ private int maxChance;
+ public String Dimension = "null";
+
+ public GTUODimension(ConfigCategory aConfigCategory) { // TODO CONFIGURE
+ fFluids = HashBiMap.create();
+ if (aConfigCategory.containsKey("Dimension")) {
+ aConfigCategory.get("Dimension").comment = "Dimension ID or Class Name";
+ Dimension = aConfigCategory.get("Dimension")
+ .getString();
+ }
+ maxChance = 0;
+ // GT_FML_LOGGER.info("GT UO "+aConfigCategory.getName()+" Dimension:"+Dimension);
+ for (int i = 0; i < aConfigCategory.getChildren()
+ .size(); i++) {
+ GTUOFluid fluid = new GTUOFluid(
+ (ConfigCategory) aConfigCategory.getChildren()
+ .toArray()[i]);
+ fFluids.put(fluid.Registry, fluid);
+ maxChance += fluid.Chance;
+ }
+ }
+
+ public GTUOFluid getRandomFluid(Random aRandom) {
+ int random = aRandom.nextInt(1000);
+ for (BiMap.Entry<String, GTUOFluid> fl : fFluids.entrySet()) {
+ int chance = fl.getValue().Chance * 1000 / maxChance;
+ if (random <= chance) return fl.getValue();
+ // GT_FML_LOGGER.info("GT UO "+fl.getValue().Registry+" Chance:"+chance+" Random:"+random);
+ random -= chance;
+ }
+ return null;
+ }
+
+ public String getUOFluidKey(GTUOFluid uoFluid) {
+ return fFluids.inverse()
+ .get(uoFluid);
+ }
+
+ public GTUOFluid getUOFluid(String key) {
+ return fFluids.get(key);
+ }
+}