aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/pers
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/pers')
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/Config.java36
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java47
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java4
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java4
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java209
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java200
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/GT5CFGHelper.java225
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreLayerHelper.java79
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreSmallHelper.java176
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/Oremix.java593
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/SmallOre.java82
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/Veinrenamer.java23
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/XtoBool.java34
13 files changed, 544 insertions, 1168 deletions
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/Config.java b/src/main/java/pers/gwyog/gtneioreplugin/Config.java
index 8501ebabb1..ceced6a78e 100644
--- a/src/main/java/pers/gwyog/gtneioreplugin/Config.java
+++ b/src/main/java/pers/gwyog/gtneioreplugin/Config.java
@@ -1,22 +1,28 @@
package pers.gwyog.gtneioreplugin;
-import java.io.File;
-
-import net.minecraftforge.common.config.Configuration;
-
-import cpw.mods.fml.common.event.FMLPreInitializationEvent;
-
+@com.gtnewhorizon.gtnhlib.config.Config(
+ modid = GTNEIOrePlugin.MODID,
+ category = "general",
+ filename = GTNEIOrePlugin.MODID)
public class Config {
- public final Configuration tConfig;
+ @com.gtnewhorizon.gtnhlib.config.Config.Comment("if true, generate both csv files.")
+ @com.gtnewhorizon.gtnhlib.config.Config.DefaultBoolean(false)
+ @com.gtnewhorizon.gtnhlib.config.Config.RequiresMcRestart
+ public static boolean printCsv;
+
+ @com.gtnewhorizon.gtnhlib.config.Config.Comment("the name of the file you want for the ore sheet, it'll appear at the root of your instance.")
+ @com.gtnewhorizon.gtnhlib.config.Config.DefaultString("GTNH-Oresheet.csv")
+ @com.gtnewhorizon.gtnhlib.config.Config.RequiresMcRestart
+ public static String CSVName;
- public Config(FMLPreInitializationEvent preinit, String cfgname) {
- File tFile = new File(preinit.getModConfigurationDirectory(), cfgname);
- tConfig = new Configuration(tFile);
- tConfig.load();
- }
+ @com.gtnewhorizon.gtnhlib.config.Config.Comment("the name of the file you want for the small ore sheet, it'll appear at the root of your instance.")
+ @com.gtnewhorizon.gtnhlib.config.Config.DefaultString("GTNH-Small-Ores-Sheet.csv")
+ @com.gtnewhorizon.gtnhlib.config.Config.RequiresMcRestart
+ public static String CSVnameSmall;
- public void save() {
- if (tConfig.hasChanged()) tConfig.save();
- }
+ @com.gtnewhorizon.gtnhlib.config.Config.Comment("Maximum number of lines the dimension names tooltip can have before it wraps around.")
+ @com.gtnewhorizon.gtnhlib.config.Config.DefaultInt(11)
+ @com.gtnewhorizon.gtnhlib.config.Config.RequiresMcRestart
+ public static int maxTooltipLines;
}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java b/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java
index e277ba915c..7ae7b0bc1c 100644
--- a/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java
+++ b/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java
@@ -1,11 +1,16 @@
package pers.gwyog.gtneioreplugin;
+import java.io.File;
+
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import com.gtnewhorizon.gtnhlib.config.ConfigException;
+import com.gtnewhorizon.gtnhlib.config.ConfigurationManager;
+
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
@@ -28,14 +33,19 @@ import pers.gwyog.gtneioreplugin.util.GT5UndergroundFluidHelper;
dependencies = "required-after:gregtech;required-after:NotEnoughItems")
public class GTNEIOrePlugin {
+ static {
+ try {
+ ConfigurationManager.registerConfig(Config.class);
+ } catch (ConfigException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
public static final String MODID = "gtneioreplugin";
public static final String NAME = "GT NEI Ore Plugin GT:NH Mod";
public static final String VERSION = GT_Version.VERSION;
public static final Logger LOG = LogManager.getLogger(NAME);
- public static boolean csv = false;
- public static String CSVname;
- public static String CSVnameSmall;
- public static int maxTooltipLines = 11;
+ public static File instanceDir;
public static final CreativeTabs creativeTab = new CreativeTabs(MODID) {
@Override
@@ -50,31 +60,8 @@ public class GTNEIOrePlugin {
@EventHandler
public void preinit(FMLPreInitializationEvent event) {
- Config c = new Config(event, MODID + ".cfg");
- csv = c.tConfig.getBoolean(
- "print csv",
- "ALL",
- false,
- "print csv, you need apache commons collections to be injected in the minecraft jar.");
- CSVname = c.tConfig.getString(
- "CSV_name",
- "ALL",
- event.getModConfigurationDirectory() + "/GTNH-Oresheet.csv",
- "rename the oresheet here, it will appear in /config");
- CSVnameSmall = c.tConfig.getString(
- "CSV_name_for_Small_Ore_Sheet",
- "ALL",
- event.getModConfigurationDirectory() + "/GTNH-Small-Ores-Sheet.csv",
- "rename the oresheet here, it will appear in /config");
- maxTooltipLines = c.tConfig.getInt(
- "MaxToolTipLines",
- "ALL",
- 11,
- 1,
- Integer.MAX_VALUE,
- "Maximum number of lines the dimension names tooltip can have before it wraps around.");
-
- c.save();
+ instanceDir = event.getModConfigurationDirectory()
+ .getParentFile();
}
@EventHandler
@@ -89,7 +76,7 @@ public class GTNEIOrePlugin {
GT5OreSmallHelper.init();
GT5UndergroundFluidHelper.init();
if (event.getSide() == Side.CLIENT) {
- if (csv) {
+ if (Config.printCsv) {
new CSVMaker().run();
}
}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java
index 1cf0157354..7e42f912a7 100644
--- a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java
@@ -131,7 +131,9 @@ public class PluginGT5SmallOreStat extends PluginGT5Base {
private String[] getDimNameArrayFromVeinName(String veinName) {
OreSmallWrapper oreSmall = GT5OreSmallHelper.mapOreSmallWrapper.get(veinName);
- String[] dims = DimensionHelper.parseDimNames(GT5OreSmallHelper.bufferedDims.get(oreSmall));
+ String[] dims = GT5OreSmallHelper.bufferedDims.get(oreSmall)
+ .keySet()
+ .toArray(new String[0]);
Arrays.sort(
dims,
Comparator.comparingInt(
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java
index 0f3322a500..81aff90ba9 100644
--- a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java
@@ -135,7 +135,9 @@ public class PluginGT5VeinStat extends PluginGT5Base {
private String[] getDimNameArrayFromVeinName(String veinName) {
OreLayerWrapper oreLayer = GT5OreLayerHelper.mapOreLayerWrapper.get(veinName);
- String[] dims = DimensionHelper.parseDimNames(GT5OreLayerHelper.bufferedDims.get(oreLayer));
+ String[] dims = (GT5OreLayerHelper.bufferedDims.get(oreLayer)
+ .keySet()
+ .toArray(new String[0]));
Arrays.sort(
dims,
Comparator.comparingInt(
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java b/src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java
index 1a99b469af..61fdff46a2 100644
--- a/src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java
@@ -1,136 +1,60 @@
package pers.gwyog.gtneioreplugin.util;
+import static pers.gwyog.gtneioreplugin.Config.CSVName;
+import static pers.gwyog.gtneioreplugin.Config.CSVnameSmall;
+import static pers.gwyog.gtneioreplugin.GTNEIOrePlugin.instanceDir;
+
import java.io.BufferedWriter;
import java.nio.file.Files;
-import java.nio.file.Paths;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import com.opencsv.CSVWriter;
-import com.opencsv.bean.ColumnPositionMappingStrategy;
-import com.opencsv.bean.StatefulBeanToCsv;
-import com.opencsv.bean.StatefulBeanToCsvBuilder;
-
-import pers.gwyog.gtneioreplugin.GTNEIOrePlugin;
import pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5VeinStat;
import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper.OreLayerWrapper;
+// todo: yeet any opencsv usage.
public class CSVMaker implements Runnable {
- public CSVMaker() {}
-
- public static List<Oremix> Combsort(List<Oremix> list) {
- try {
- List<Oremix> list2 = new ArrayList<>(list.size());
- list2.addAll(list);
-
- int step = list2.size();
- boolean swapped;
- do {
- swapped = false;
- if (step > 1) {
- step = (int) (step / 1.3);
- }
- for (int i = 0; i < list2.size() - step; i++) {
- if (list2.get(i)
- .getOreName()
- .substring(0, 3)
- .compareTo(
- (list2.get(i + step)
- .getOreName()
- .substring(0, 3)))
- > 0) {
- Oremix tmp = list2.get(i);
- list2.set(i, list2.get(i + step));
- list2.set(i + step, tmp);
- swapped = true;
- }
- }
- } while (swapped || step > 1);
- return list2;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
public void runSmallOres() {
try {
Iterator<Map.Entry<String, GT5OreSmallHelper.OreSmallWrapper>> it = GT5OreSmallHelper.mapOreSmallWrapper
.entrySet()
.iterator();
- List<Oremix> OreVeins = new ArrayList<>();
+ List<SmallOre> SmallOreVeins = new ArrayList<>();
while (it.hasNext()) {
- Oremix oremix = new Oremix();
+ SmallOre oremix = new SmallOre();
Map.Entry<String, GT5OreSmallHelper.OreSmallWrapper> pair = it.next();
- String Dims = GT5OreSmallHelper.bufferedDims.get(pair.getValue());
GT5OreSmallHelper.OreSmallWrapper oreLayer = pair.getValue();
- oremix.setOreName(oreLayer.oreGenName.split("\\.")[2]);
+
+ Map<String, Boolean> Dims = GT5OreSmallHelper.bufferedDims.get(oreLayer);
+
+ oremix.setOreName(oreLayer.oreGenName);
+ oremix.setOreMeta(oreLayer.oreMeta);
oremix.setHeight(oreLayer.worldGenHeightRange);
- oremix.setDensity(oreLayer.amountPerChunk);
- oremix.an = Dims.contains("An");
- oremix.as = Dims.contains("As");
- oremix.bc = Dims.contains("BC");
- oremix.be = Dims.contains("BE");
- oremix.bf = Dims.contains("BF");
- oremix.ca = Dims.contains("Ca");
- oremix.cb = Dims.contains("CA");
- oremix.ce = Dims.contains("Ce");
- oremix.dd = Dims.contains("DD");
- oremix.de = Dims.contains("De");
- oremix.ea = Dims.contains("EA");
- oremix.en = Dims.contains("En");
- oremix.eu = Dims.contains("Eu");
- oremix.ga = Dims.contains("Ga");
- oremix.ha = Dims.contains("Ha");
- oremix.ho = Dims.contains("Ho");
- oremix.io = Dims.contains("Io");
- oremix.kb = Dims.contains("KB");
- oremix.make = Dims.contains("MM");
- oremix.ma = Dims.contains("Ma");
- oremix.mb = Dims.contains("MB");
- oremix.me = Dims.contains("Me");
- oremix.mh = Dims.contains("Mh");
- oremix.mi = Dims.contains("Mi");
- oremix.mo = Dims.contains("Mo");
- oremix.np = Dims.contains("Np");
- oremix.ob = Dims.contains("Ob");
- oremix.ph = Dims.contains("Ph");
- oremix.pl = Dims.contains("Pl");
- oremix.pr = Dims.contains("Pr");
- oremix.se = Dims.contains("Se");
- oremix.tcetie = Dims.contains("TE");
- oremix.tf = Dims.contains("TF");
- oremix.ti = Dims.contains("Ti");
- oremix.tr = Dims.contains("Tr");
- oremix.vb = Dims.contains("VB");
- oremix.ve = Dims.contains("Ve");
- oremix.setOverworld(Dims.contains("Ow"));
- oremix.setNether(Dims.contains("Ne"));
- oremix.setEnd(Dims.contains("EN"));
- OreVeins.add(oremix);
+ oremix.setAmount(oreLayer.amountPerChunk);
+ oremix.setDims(Dims);
+
+ SmallOreVeins.add(oremix);
- System.out.println(pair.getKey() + " = " + pair.getValue());
it.remove(); // avoids a ConcurrentModificationException
}
- BufferedWriter one = Files.newBufferedWriter(Paths.get(GTNEIOrePlugin.CSVnameSmall));
- ColumnPositionMappingStrategy<Oremix> strat = new ColumnPositionMappingStrategy<>();
- strat.setType(Oremix.class);
- String[] columns = "ORENAME,mix,DENSITY,overworld,nether,end,ea,tf,mo,ma,ph,de,as,ce,eu,ga,ca,io,ve,me,en,ti,mi,ob,pr,tr,pl,kb,ha,make,dd,cb,vb,bc,be,bf,tcetie,an,ho,np,mh,mb,se"
- .split("\\,");
- strat.setColumnMapping(columns);
- StatefulBeanToCsv<Oremix> beanToCsv = new StatefulBeanToCsvBuilder<Oremix>(one)
- .withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
- .withMappingStrategy(strat)
- .build();
- List<Oremix> towrite = Combsort(OreVeins);
- one.write(
- "Ore Name,Primary,Secondary,Inbetween,Around,ID,Tier,Height,Density,Size,Weight,Overworld,Nether,End,End Asteroids,Twilight Forest,Moon,Mars,Phobos,Deimos,Asteroids,Ceres,Europa,Ganymede,Callisto,Io,Venus,Mercury,Enceladus,Titan,Miranda,Oberon,Proteus,Triton,Pluto,Kuiper Belt,Haumea,Makemake,Deep Dark,Centauri Bb,Vega B,Barnard C,Barnard E,Barnard F,T Ceti E,Anubis,Horus,Neper,Maahes,Mehen Belt,Seth");
+
+ BufferedWriter one = Files.newBufferedWriter(
+ instanceDir.toPath()
+ .resolve(CSVnameSmall));
+ Collections.sort(SmallOreVeins);
+
+ // header first
+ one.write(SmallOre.getCsvHeader());
one.newLine();
- beanToCsv.write(towrite);
+ for (SmallOre ore : SmallOreVeins) {
+ one.write(ore.getCsvEntry());
+ one.newLine();
+ }
one.flush();
one.close();
} catch (Exception e) {
@@ -153,84 +77,41 @@ public class CSVMaker implements Runnable {
Oremix oremix = new Oremix();
Map.Entry<String, OreLayerWrapper> pair = it.next();
- String Dims = GT5OreLayerHelper.bufferedDims.get(pair.getValue());
+ Map<String, Boolean> Dims = GT5OreLayerHelper.bufferedDims.get(pair.getValue());
OreLayerWrapper oreLayer = pair.getValue();
- oremix.setOreName(oreLayer.veinName.split("\\.")[2]);
+ oremix.setOreMixName(oreLayer.veinName);
oremix.setPrimary(PluginGT5VeinStat.getGTOreLocalizedName(oreLayer.Meta[0]));
oremix.setSecondary(PluginGT5VeinStat.getGTOreLocalizedName(oreLayer.Meta[1]));
oremix.setInbetween(PluginGT5VeinStat.getGTOreLocalizedName(oreLayer.Meta[2]));
- oremix.setAround(PluginGT5VeinStat.getGTOreLocalizedName(oreLayer.Meta[3]));
+ oremix.setSporadic(PluginGT5VeinStat.getGTOreLocalizedName(oreLayer.Meta[3]));
oremix.setSize(oreLayer.size);
oremix.setHeight(oreLayer.worldGenHeightRange);
oremix.setDensity(oreLayer.density);
oremix.setWeight(oreLayer.randomWeight);
- oremix.setMix(
+ oremix.setOreMixIDs(
Integer.toString(oreLayer.Meta[0]) + "|"
+ Integer.toString(oreLayer.Meta[1])
+ "|"
+ Integer.toString(oreLayer.Meta[2])
+ "|"
+ Integer.toString(oreLayer.Meta[3]));
- oremix.an = Dims.contains("An");
- oremix.as = Dims.contains("As");
- oremix.bc = Dims.contains("BC");
- oremix.be = Dims.contains("BE");
- oremix.bf = Dims.contains("BF");
- oremix.ca = Dims.contains("Ca");
- oremix.cb = Dims.contains("CA");
- oremix.ce = Dims.contains("Ce");
- oremix.dd = Dims.contains("DD");
- oremix.de = Dims.contains("De");
- oremix.ea = Dims.contains("EA");
- oremix.en = Dims.contains("En");
- oremix.eu = Dims.contains("Eu");
- oremix.ga = Dims.contains("Ga");
- oremix.ha = Dims.contains("Ha");
- oremix.ho = Dims.contains("Ho");
- oremix.io = Dims.contains("Io");
- oremix.kb = Dims.contains("KB");
- oremix.make = Dims.contains("MM");
- oremix.ma = Dims.contains("Ma");
- oremix.mb = Dims.contains("MB");
- oremix.me = Dims.contains("Me");
- oremix.mh = Dims.contains("Mh");
- oremix.mi = Dims.contains("Mi");
- oremix.mo = Dims.contains("Mo");
- oremix.np = Dims.contains("Np");
- oremix.ob = Dims.contains("Ob");
- oremix.ph = Dims.contains("Ph");
- oremix.pl = Dims.contains("Pl");
- oremix.pr = Dims.contains("Pr");
- oremix.se = Dims.contains("Se");
- oremix.tcetie = Dims.contains("TE");
- oremix.tf = Dims.contains("TF");
- oremix.ti = Dims.contains("Ti");
- oremix.tr = Dims.contains("Tr");
- oremix.vb = Dims.contains("VB");
- oremix.ve = Dims.contains("Ve");
- oremix.setOverworld(Dims.contains("Ow"));
- oremix.setNether(Dims.contains("Ne"));
- oremix.setEnd(Dims.contains("EN"));
+ oremix.setDims(Dims);
OreVeins.add(oremix);
- System.out.println(pair.getKey() + " = " + pair.getValue());
it.remove(); // avoids a ConcurrentModificationException
}
- BufferedWriter one = Files.newBufferedWriter(Paths.get(GTNEIOrePlugin.CSVname));
- ColumnPositionMappingStrategy<Oremix> strat = new ColumnPositionMappingStrategy<>();
- strat.setType(Oremix.class);
- String[] columns = "ORENAME,PRIMARY,SECONDARY,INBETWEEN,AROUND,mix,TIER,HEIGHT,DENSITY,SIZE,WEIGHT,overworld,nether,end,ea,tf,mo,ma,ph,de,as,ce,eu,ga,ca,io,ve,me,en,ti,mi,ob,pr,tr,pl,kb,ha,make,dd,cb,vb,bc,be,bf,tcetie,an,ho,np,mh,mb,se"
- .split("\\,");
- strat.setColumnMapping(columns);
- StatefulBeanToCsv<Oremix> beanToCsv = new StatefulBeanToCsvBuilder<Oremix>(one)
- .withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
- .withMappingStrategy(strat)
- .build();
- List<Oremix> towrite = Combsort(OreVeins);
- one.write(
- "Ore Name,Primary,Secondary,Inbetween,Around,ID,Tier,Height,Density,Size,Weight,Overworld,Nether,End,End Asteroids,Twilight Forest,Moon,Mars,Phobos,Deimos,Asteroids,Ceres,Europa,Ganymede,Callisto,Io,Venus,Mercury,Enceladus,Titan,Miranda,Oberon,Proteus,Triton,Pluto,Kuiper Belt,Haumea,Makemake,Deep Dark,Centauri Bb,Vega B,Barnard C,Barnard E,Barnard F,T Ceti E,Anubis,Horus,Neper,Maahes,Mehen Belt,Seth");
+ BufferedWriter one = Files.newBufferedWriter(
+ instanceDir.toPath()
+ .resolve(CSVName));
+ Collections.sort(OreVeins);
+
+ // header first
+ one.write(Oremix.getCsvHeader());
one.newLine();
- beanToCsv.write(towrite);
+ for (Oremix ore : OreVeins) {
+ one.write(ore.getCsvEntry());
+ one.newLine();
+ }
one.flush();
one.close();
} catch (Exception e) {
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java
index e416713208..db7201323b 100644
--- a/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java
@@ -1,18 +1,59 @@
package pers.gwyog.gtneioreplugin.util;
-import static pers.gwyog.gtneioreplugin.GTNEIOrePlugin.maxTooltipLines;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.ANUBIS;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.ASTEROIDS;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.BARNARDC;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.BARNARDE;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.BARNARDF;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.CALLISTO;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.CENTAURIA;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.CERES;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.DEEPDARK;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.DEIMOS;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.ENCELADUS;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.ENDASTEROIDS;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.EUROPA;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.GANYMEDE;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.HAUMEA;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.HORUS;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.IO;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.KUIPERBELT;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.MAAHES;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.MAKEMAKE;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.MARS;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.MEHENBELT;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.MERCURY;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.MIRANDA;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.MOON;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.NEPER;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.OBERON;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.PHOBOS;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.PLUTO;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.PROTEUS;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.ROSS128B;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.ROSS128BA;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.SETH;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.TCETIE;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.TITAN;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.TRITON;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.VEGAB;
+import static bloodasp.galacticgreg.api.enums.DimensionDef.DimNames.VENUS;
+import static pers.gwyog.gtneioreplugin.Config.maxTooltipLines;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import net.minecraft.util.StatCollector;
+import gregtech.common.OreMixBuilder;
+
public class DimensionHelper {
public static final String[] DimName = {
// Non GC dimensions in progression order instead of alphabetical
- "Overworld", "Nether", "Twilight", "TheEnd", "Vanilla_EndAsteroids", "EndAsteroid",
+ "Overworld", "Nether", "Twilight", "TheEnd", "EndAsteroid",
// T1
"GalacticraftCore_Moon",
// T2
@@ -42,8 +83,7 @@ public class DimensionHelper {
n -> n.replaceAll("GalacticraftCore_", "")
.replaceAll("GalacticraftMars_", "")
.replaceAll("GalaxySpace_", "")
- .replaceAll("GalacticraftAmunRa_", "")
- .replaceAll("Vanilla_", "Vanilla "))
+ .replaceAll("GalacticraftAmunRa_", ""))
.toArray(String[]::new);
public static final String[] DimNameDisplayed = { // first 2 letters if one word else 1 letter of every word, except
@@ -54,7 +94,6 @@ public class DimensionHelper {
"Ne", // Nether
"TF", // Twilight
"ED", // TheEnd because En = Encalus
- "VA", // Vanilla_EndAsteroids
"EA", // EndAsteroid
// T1
"Mo", // GalacticraftCore_Moon
@@ -155,6 +194,157 @@ public class DimensionHelper {
return dims;
}
+ public static Map<String, Boolean> getDims(GT5OreLayerHelper.OreLayerWrapper oreLayer) {
+ Map<String, Boolean> enabledDims = new HashMap<>();
+ Map<String, Boolean> origNames = oreLayer.allowedDimWithOrigNames;
+
+ for (String dimName : origNames.keySet()) {
+ String abbr = getDimAbbreviatedName(dimName);
+ if (!origNames.getOrDefault(dimName, false)) {
+ continue;
+ }
+ enabledDims.put(abbr, true);
+ }
+ return enabledDims;
+ }
+
+ public static Map<String, Boolean> getDims(GT5OreSmallHelper.OreSmallWrapper ore) {
+ Map<String, Boolean> enabledDims = new HashMap<>();
+ Map<String, Boolean> origNames = ore.allowedDimWithOrigNames;
+
+ for (String dimName : origNames.keySet()) {
+ String abbr = getDimAbbreviatedName(dimName);
+ if (!origNames.getOrDefault(dimName, false)) {
+ continue;
+ }
+ enabledDims.put(abbr, true);
+ }
+ return enabledDims;
+ }
+
+ public static String getDimAbbreviatedName(String dimName) {
+ String abbreviatedName;
+ switch (dimName) {
+ case (OreMixBuilder.OW) -> abbreviatedName = "Ow"; // Overworld
+ case OreMixBuilder.NETHER -> abbreviatedName = "Ne"; // Nether
+ case OreMixBuilder.TWILIGHT_FOREST -> abbreviatedName = "TF"; // Twilight
+ case OreMixBuilder.THE_END -> abbreviatedName = "ED"; // TheEnd because En = Encalus
+ case ENDASTEROIDS -> abbreviatedName = "EA"; // EndAsteroid
+ // T1
+ case MOON -> abbreviatedName = "Mo"; // GalacticraftCore_Moon
+ // T2
+ case DEIMOS -> abbreviatedName = "De"; // GalaxySpace_Deimos
+ case MARS -> abbreviatedName = "Ma"; // GalacticraftMars_Mars
+ case PHOBOS -> abbreviatedName = "Ph"; // GalaxySpace_Phobos
+ // T3
+ case ASTEROIDS -> abbreviatedName = "As"; // GalacticraftMars_Asteroids
+ case CALLISTO -> abbreviatedName = "Ca"; // GalaxySpace_Callisto
+ case CERES -> abbreviatedName = "Ce"; // GalaxySpace_Ceres
+ case EUROPA -> abbreviatedName = "Eu"; // GalaxySpace_Europa
+ case GANYMEDE -> abbreviatedName = "Ga"; // GalaxySpace_Ganymede
+ case ROSS128B -> abbreviatedName = "Rb"; // Ross128b
+ // T4
+ case IO -> abbreviatedName = "Io"; // GalaxySpace_Io
+ case MERCURY -> abbreviatedName = "Me"; // GalaxySpace_Mercury
+ case VENUS -> abbreviatedName = "Ve"; // GalaxySpace_Venus
+ // T5
+ case ENCELADUS -> abbreviatedName = "En"; // GalaxySpace_Enceladus
+ case MIRANDA -> abbreviatedName = "Mi"; // GalaxySpace_Miranda
+ case OBERON -> abbreviatedName = "Ob"; // GalaxySpace_Oberon
+ case TITAN -> abbreviatedName = "Ti"; // GalaxySpace_Titan
+ case ROSS128BA -> abbreviatedName = "Ra"; // Ross128ba
+ // T6
+ case PROTEUS -> abbreviatedName = "Pr"; // GalaxySpace_Proteus
+ case TRITON -> abbreviatedName = "Tr"; // GalaxySpace_Triton
+ // T7
+ case HAUMEA -> abbreviatedName = "Ha"; // GalaxySpace_Haumea
+ case KUIPERBELT -> abbreviatedName = "KB"; // GalaxySpace_Kuiperbelt
+ case MAKEMAKE -> abbreviatedName = "MM"; // GalaxySpace_MakeMake
+ case PLUTO -> abbreviatedName = "Pl"; // GalaxySpace_Pluto
+ // T8
+ case BARNARDC -> abbreviatedName = "BC"; // GalaxySpace_BarnardC
+ case BARNARDE -> abbreviatedName = "BE"; // GalaxySpace_BarnardE
+ case BARNARDF -> abbreviatedName = "BF"; // GalaxySpace_BarnardF
+ case CENTAURIA -> abbreviatedName = "CB"; // GalaxySpace_CentauriA is actually α Centauri Bb
+ case TCETIE -> abbreviatedName = "TE"; // GalaxySpace_TcetiE
+ case VEGAB -> abbreviatedName = "VB"; // GalaxySpace_VegaB
+ // T9
+ case ANUBIS -> abbreviatedName = "An"; // GalacticraftAmunRa_Anubis
+ case HORUS -> abbreviatedName = "Ho"; // GalacticraftAmunRa_Horus
+ case MAAHES -> abbreviatedName = "Mh"; // GalacticraftAmunRa_Maahes
+ case MEHENBELT -> abbreviatedName = "MB"; // GalacticraftAmunRa_MehenBelt
+ case NEPER -> abbreviatedName = "Np"; // GalacticraftAmunRa_Neper
+ case SETH -> abbreviatedName = "Se"; // GalacticraftAmunRa_Seth
+ // T10
+ case DEEPDARK -> abbreviatedName = "DD"; // Underdark
+ default -> {
+ throw new IllegalStateException("String: " + dimName + " has no abbredged name!");
+ }
+ }
+ return abbreviatedName;
+ }
+
+ public static String getFullName(String dimName) {
+
+ return switch (dimName) {
+ case "Ow" -> (OreMixBuilder.OW); // Overworld
+ case "Ne" -> OreMixBuilder.NETHER; // Nether
+ case "TF" -> OreMixBuilder.TWILIGHT_FOREST; // Twilight
+ case "ED" -> OreMixBuilder.THE_END; // TheEnd because En = Encalus
+ case "EA" -> ENDASTEROIDS; // EndAsteroid
+ // T1
+ case "Mo" -> MOON; // GalacticraftCore_Moon
+ // T2
+ case "De" -> DEIMOS; // GalaxySpace_Deimos
+ case "Ma" -> MARS; // GalacticraftMars_Mars
+ case "Ph" -> PHOBOS; // GalaxySpace_Phobos
+ // T3
+ case "As" -> ASTEROIDS; // GalacticraftMars_Asteroids
+ case "Ca" -> CALLISTO; // GalaxySpace_Callisto
+ case "Ce" -> CERES; // GalaxySpace_Ceres
+ case "Eu" -> EUROPA; // GalaxySpace_Europa
+ case "Ga" -> GANYMEDE; // GalaxySpace_Ganymede
+ case "Rb" -> ROSS128B; // Ross128b
+ // T4
+ case "Io" -> IO; // GalaxySpace_Io
+ case "Me" -> MERCURY; // GalaxySpace_Mercury
+ case "Ve" -> VENUS; // GalaxySpace_Venus
+ // T5
+ case "En" -> ENCELADUS; // GalaxySpace_Enceladus
+ case "Mi" -> MIRANDA; // GalaxySpace_Miranda
+ case "Ob" -> OBERON; // GalaxySpace_Oberon
+ case "Ti" -> TITAN; // GalaxySpace_Titan
+ case "Ra" -> ROSS128BA; // Ross128ba
+ // T6
+ case "Pr" -> PROTEUS; // GalaxySpace_Proteus
+ case "Tr" -> TRITON; // GalaxySpace_Triton
+ // T7
+ case "Ha" -> HAUMEA; // GalaxySpace_Haumea
+ case "KB" -> KUIPERBELT; // GalaxySpace_Kuiperbelt
+ case "MM" -> MAKEMAKE; // GalaxySpace_MakeMake
+ case "Pl" -> PLUTO; // GalaxySpace_Pluto
+ // T8
+ case "BC" -> BARNARDC; // GalaxySpace_BarnardC
+ case "BE" -> BARNARDE; // GalaxySpace_BarnardE
+ case "BF" -> BARNARDF; // GalaxySpace_BarnardF
+ case "CB" -> CENTAURIA; // GalaxySpace_CentauriA is actually α Centauri Bb
+ case "TE" -> TCETIE; // GalaxySpace_TcetiE
+ case "VB" -> VEGAB; // GalaxySpace_VegaB
+ // T9
+ case "An" -> ANUBIS; // GalacticraftAmunRa_Anubis
+ case "Ho" -> HORUS; // GalacticraftAmunRa_Horus
+ case "Mh" -> MAAHES; // GalacticraftAmunRa_Maahes
+ case "MB" -> MEHENBELT; // GalacticraftAmunRa_MehenBelt
+ case "Np" -> NEPER; // GalacticraftAmunRa_Neper
+ case "Se" -> SETH; // GalacticraftAmunRa_Seth
+ // T10
+ case "DD" -> DEEPDARK; // Underdark
+ default -> {
+ throw new IllegalStateException("String: " + dimName + " has no abbredged name!");
+ }
+ };
+ }
+
public static List<String> convertCondensedStringToToolTip(String line) {
return tooltipBuffer.computeIfAbsent(line, (String tmp) -> computeString(line));
}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5CFGHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5CFGHelper.java
deleted file mode 100644
index 7394edea58..0000000000
--- a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5CFGHelper.java
+++ /dev/null
@@ -1,225 +0,0 @@
-package pers.gwyog.gtneioreplugin.util;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
-import net.minecraftforge.common.config.ConfigCategory;
-import net.minecraftforge.common.config.Configuration;
-import net.minecraftforge.common.config.Property;
-
-import cpw.mods.fml.common.FMLLog;
-import gregtech.api.GregTech_API;
-import pers.gwyog.gtneioreplugin.GTNEIOrePlugin;
-
-public class GT5CFGHelper {
-
- // Do NOT ever put a comma in this or it will break split calls later in the code. Bad, but it is what it is.
- public static final String oreVeinNotInAnyDim = "Not available in any Galactic Dim!";
-
- private static final File F = GregTech_API.sWorldgenFile.mConfig.getConfigFile();
-
- public static String GT5CFGSmallOres(String Veinname) {
- List<String> raw = new ArrayList<>();
- List<String> rawbools = new ArrayList<>();
- String st;
- Configuration c = new Configuration(F);
- ConfigCategory configCategory = c.getCategory("worldgen." + Veinname);
- for (Property p : configCategory.getOrderedValues()) {
- if (p.isBooleanValue() && p.getBoolean()) {
- raw.add(p.getName() + "=" + p.getBoolean());
- }
- }
- if (!raw.isEmpty()) {
- for (String s : raw) {
- for (int j = 0; j < DimensionHelper.DimName.length; j++) {
- if (s.contains(DimensionHelper.DimName[j])) {
- rawbools.add(s);
- }
- }
- }
- } else GTNEIOrePlugin.LOG.info("Config entry not found for Vein: " + Veinname);
-
- StringBuilder ret = new StringBuilder(" ");
-
- HashSet<String> rawboolsset = new HashSet<>();
- if (!rawbools.isEmpty()) {
- for (String rawbool : rawbools) {
- st = rawbool.replace("B:", "")
- .replace("_true", "")
- .replace("_false", "")
- .replaceAll(" ", "")
- .replaceAll("\"", "");
- rawboolsset.add(st);
- }
- rawbools = new ArrayList<>(rawboolsset);
- for (int j = 0; j < DimensionHelper.DimName.length; j++) {
- for (String rawbool : rawbools) {
- st = rawbool;
- if (st.contains(DimensionHelper.DimName[j]) && st.contains("=true")) {
- ret.append(DimensionHelper.DimNameDisplayed[j])
- .append(",");
- }
- }
- }
- }
- ret = new StringBuilder(
- ret.toString()
- .trim());
- if (ret.toString()
- .equals("")
- || ret.toString()
- .equals(" ")) {
- ret = new StringBuilder(oreVeinNotInAnyDim);
- }
- return ret.toString();
- }
-
- public static String GT5CFG(String Veinname) {
- // FMLLog.info(Veinname);
- if (F == null) {
- FMLLog.bigWarning("GT_CFG_NOT_found[0]");
- return "Error while Loading CFG";
- } else try {
- int buffer = (int) (0.1 * Runtime.getRuntime()
- .freeMemory());
- if (buffer > F.length()) {
- buffer = (int) F.length();
- }
- // allocate 10% of free memory for read-in-buffer, if there is less than filesize memory available
- // FMLLog.info("GT_CFG_found[0]");
- FileReader in = new FileReader(F);
- // FMLLog.info("FileReader created");
- BufferedReader reader = new BufferedReader(in, buffer);
- // FMLLog.info("BufferedReader" +Integer.toString(buffer)+"created");
- String st;
- List<String> raw = new ArrayList<>();
- List<String> rawbools = new ArrayList<>();
- Boolean[] found = new Boolean[2];
- found[0] = false;
- found[1] = false;
-
- do {
- // FMLLog.info("erste");
- // read until reached eof or mix {
- st = reader.readLine();
- // FMLLog.info("st: "+st);
- if (st != null && st.trim()
- .equals("mix {")) {
- while (!(st == null || found[0])) {
- // FMLLog.info("zweite");
- st = reader.readLine();
- // read until reached eof or Veinname {
- // FMLLog.info("MIXst: "+st);
- if (st != null && st.trim()
- .equals(Veinname + " {")) {
- // FMLLog.info("VEINNAMEst: "+st);
- while (!(st == null || found[0])) {
- st = reader.readLine();
- if ((!(st == null)) && st.trim()
- .equals("}")) {
- found[0] = true;
- }
- // FMLLog.info("dritte");
- // add everything below Veinname { undtil } to raw
- raw.add(st);
- }
- }
- }
- }
-
- if (st != null && st.trim()
- .equals("dimensions {")) {
- while (!(st == null || found[1])) {
- // FMLLog.info("zweite");
- st = reader.readLine();
- if (st != null && (st.trim()
- .equals("mix {"))) {
- while (!(st == null || found[1])) {
- // FMLLog.info("dritte");
- st = reader.readLine();
- // read until reached eof or Veinname {
- // FMLLog.info("MIXst: "+st);
- if (st != null && st.trim()
- .equals(Veinname + " {")) {
- // FMLLog.info("VEINNAMEst: "+st);
- while (!(st == null || found[1])) {
- st = reader.readLine();
- if ((!(st == null)) && st.trim()
- .equals("}")) {
- found[1] = true;
- }
- // FMLLog.info("vierte");
- // add everything below Veinname { undtil } to raw
- raw.add(st);
- }
- }
- }
- }
- }
- }
- } while (st != null);
- reader.close(); // not needed anymore
-
- if (!raw.isEmpty()) {
- for (String s : raw) {
- // filter needed booleans from raw
- /// FMLLog.info("raw contains"+raw.get(i));
- for (int j = 0; j < DimensionHelper.DimName.length; j++) {
- if (s.contains(DimensionHelper.DimName[j])) {
- rawbools.add(s);
- }
- }
- // FMLLog.info("rawbools: "+rawbools.get(i));
- }
- } else {
- GTNEIOrePlugin.LOG.info("Config entry not found for Vein: " + Veinname);
- }
-
- StringBuilder ret = new StringBuilder(" ");
-
- HashSet<String> rawboolsset = new HashSet<>();
- if (!rawbools.isEmpty()) {
- // remove dublicates
- for (String rawbool : rawbools) {
- st = rawbool.replace("B:", "")
- .replace("_true", "")
- .replace("_false", "")
- .replaceAll(" ", "")
- .replaceAll("\"", "");
- rawboolsset.add(st);
- }
- rawbools = new ArrayList<>(rawboolsset);
- // filter for dims set to true
- for (int j = 0; j < DimensionHelper.DimName.length; j++) {
- // FMLLog.info("RawBools:"+st);
- for (String rawbool : rawbools) {
- st = rawbool;
- if (st.contains(DimensionHelper.DimName[j]) && st.contains("=true")) {
- ret.append(DimensionHelper.DimNameDisplayed[j])
- .append(",");
- }
- }
- }
- }
- ret = new StringBuilder(
- ret.toString()
- .trim());
- // FMLLog.info("ret:"+ret);
- if (ret.toString()
- .equals("")
- || ret.toString()
- .equals(" ")) {
- ret = new StringBuilder(oreVeinNotInAnyDim);
- }
- return ret.toString();
- } catch (IOException e) {
- e.printStackTrace();
- return "Error while Loading CFG";
- }
- }
-}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreLayerHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreLayerHelper.java
index ccb8c88e75..246ace7fda 100644
--- a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreLayerHelper.java
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreLayerHelper.java
@@ -1,20 +1,20 @@
package pers.gwyog.gtneioreplugin.util;
-import static pers.gwyog.gtneioreplugin.util.GT5CFGHelper.oreVeinNotInAnyDim;
+import static pers.gwyog.gtneioreplugin.util.DimensionHelper.getDims;
import static pers.gwyog.gtneioreplugin.util.OreVeinLayer.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import net.minecraft.item.ItemStack;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
-import gregtech.api.objects.ItemData;
-import gregtech.api.util.GT_OreDictUnificator;
-import gregtech.common.GT_Worldgen_GT_Ore_Layer;
+import gregtech.api.enums.OreMixes;
+import gregtech.common.OreMixBuilder;
public class GT5OreLayerHelper {
@@ -39,14 +39,14 @@ public class GT5OreLayerHelper {
public static final Integer[] weightPerWorld = new Integer[DIMENSION_COUNT];
public static final Integer[] DimIDs = new Integer[DIMENSION_COUNT];
public static final HashMap<String, OreLayerWrapper> mapOreLayerWrapper = new HashMap<>();
- public static final HashMap<OreLayerWrapper, String> bufferedDims = new HashMap<>();
+ public static final HashMap<OreLayerWrapper, Map<String, Boolean>> bufferedDims = new HashMap<>();
public static final HashMap<String, NormalOreDimensionWrapper> dimToOreWrapper = new HashMap<>();
public static void init() {
Arrays.fill(weightPerWorld, 0);
Arrays.fill(DimIDs, 0);
- for (GT_Worldgen_GT_Ore_Layer tWorldGen : GT_Worldgen_GT_Ore_Layer.sList)
- mapOreLayerWrapper.put(tWorldGen.mWorldGenName, new OreLayerWrapper(tWorldGen));
+ for (OreMixes mix : OreMixes.values())
+ mapOreLayerWrapper.put(mix.oreMixBuilder.oreMixName, new OreLayerWrapper(mix.oreMixBuilder));
for (OreLayerWrapper layer : mapOreLayerWrapper.values()) {
bufferedDims.put(layer, getDims(layer));
}
@@ -55,17 +55,12 @@ public class GT5OreLayerHelper {
// Get dims as "Ow,Ne,Ma" etc.
bufferedDims.forEach((veinInfo, dims) -> {
- if (dims.equals(oreVeinNotInAnyDim)) {
- return;
- }
- for (String dim : dims.split(",")) {
- if (!dim.isEmpty()) {
- NormalOreDimensionWrapper dimensionOres = dimToOreWrapper
- .getOrDefault(dim, new NormalOreDimensionWrapper());
- dimensionOres.internalDimOreList.add(veinInfo);
- dimToOreWrapper.put(dim, dimensionOres);
- }
+ for (String dim : dims.keySet()) {
+ NormalOreDimensionWrapper dimensionOres = dimToOreWrapper
+ .getOrDefault(dim, new NormalOreDimensionWrapper());
+ dimensionOres.internalDimOreList.add(veinInfo);
+ dimToOreWrapper.put(dim, dimensionOres);
}
// Calculate probabilities for each dim.
@@ -77,48 +72,36 @@ public class GT5OreLayerHelper {
// --- End of handling for dimToOreWrapper ---
}
- public static String getDims(OreLayerWrapper oreLayer) {
- return GT5CFGHelper.GT5CFG(
- oreLayer.veinName.replace("ore.mix.custom" + ".", "")
- .replace("ore.mix.", ""));
- }
-
public static class OreLayerWrapper {
public final String veinName, worldGenHeightRange;
public final short[] Meta = new short[4];
public final short randomWeight, size, density;
+ public final Map<String, Boolean> allowedDimWithOrigNames;
public final Materials mPrimaryVeinMaterial;
public final Materials mSecondaryMaterial;
public final Materials mBetweenMaterial;
public final Materials mSporadicMaterial;
- public OreLayerWrapper(GT_Worldgen_GT_Ore_Layer worldGen) {
- this.veinName = worldGen.mWorldGenName;
- this.Meta[0] = worldGen.mPrimaryMeta;
- this.Meta[1] = worldGen.mSecondaryMeta;
- this.Meta[2] = worldGen.mBetweenMeta;
- this.Meta[3] = worldGen.mSporadicMeta;
-
- // Black magic, don't ask me how it works, I have no idea.
- ItemData primaryVeinData = GT_OreDictUnificator
- .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mPrimaryMeta));
- this.mPrimaryVeinMaterial = primaryVeinData != null ? primaryVeinData.mMaterial.mMaterial : null;
- ItemData secondaryVeinData = GT_OreDictUnificator
- .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mSecondaryMeta));
- this.mSecondaryMaterial = secondaryVeinData != null ? secondaryVeinData.mMaterial.mMaterial : null;
- ItemData betweenVeinData = GT_OreDictUnificator
- .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mBetweenMeta));
- this.mBetweenMaterial = betweenVeinData != null ? betweenVeinData.mMaterial.mMaterial : null;
- ItemData sporadicVeinData = GT_OreDictUnificator
- .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mSporadicMeta));
- this.mSporadicMaterial = sporadicVeinData != null ? sporadicVeinData.mMaterial.mMaterial : null;
-
- this.size = worldGen.mSize;
- this.density = worldGen.mDensity;
- this.worldGenHeightRange = worldGen.mMinY + "-" + worldGen.mMaxY;
- this.randomWeight = worldGen.mWeight;
+ public OreLayerWrapper(OreMixBuilder mix) {
+ this.veinName = mix.oreMixName;
+ this.Meta[0] = (short) mix.primary.mMetaItemSubID;
+ this.Meta[1] = (short) mix.secondary.mMetaItemSubID;
+ this.Meta[2] = (short) mix.between.mMetaItemSubID;
+ this.Meta[3] = (short) mix.sporadic.mMetaItemSubID;
+
+ this.mPrimaryVeinMaterial = mix.primary;
+ this.mSecondaryMaterial = mix.secondary;
+ this.mBetweenMaterial = mix.between;
+ this.mSporadicMaterial = mix.sporadic;
+
+ this.size = (short) mix.size;
+ this.density = (short) mix.density;
+ this.worldGenHeightRange = mix.minY + "-" + mix.maxY;
+ this.randomWeight = (short) mix.weight;
+
+ this.allowedDimWithOrigNames = mix.dimsEnabled;
}
public List<ItemStack> getVeinLayerOre(int maximumMaterialIndex, int veinLayer) {
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreSmallHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreSmallHelper.java
index 725b0c2819..bed47193b9 100644
--- a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreSmallHelper.java
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreSmallHelper.java
@@ -1,20 +1,22 @@
package pers.gwyog.gtneioreplugin.util;
-import static pers.gwyog.gtneioreplugin.util.GT5CFGHelper.oreVeinNotInAnyDim;
+import static pers.gwyog.gtneioreplugin.util.DimensionHelper.getDims;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import net.minecraft.item.ItemStack;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
-import gregtech.api.objects.ItemData;
+import gregtech.api.enums.SmallOres;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.world.GT_Worldgen;
import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces;
+import gregtech.common.SmallOreBuilder;
public class GT5OreSmallHelper {
@@ -24,7 +26,7 @@ public class GT5OreSmallHelper {
public static final HashMap<String, OreSmallWrapper> mapOreSmallWrapper = new HashMap<>();
public static final HashMap<String, Short> mapOreDropUnlocalizedNameToOreMeta = new HashMap<>();
public static final HashMap<Short, List<ItemStack>> mapOreMetaToOreDrops = new HashMap<>();
- public static final HashMap<OreSmallWrapper, String> bufferedDims = new HashMap<>();
+ public static final HashMap<OreSmallWrapper, Map<String, Boolean>> bufferedDims = new HashMap<>();
public static final HashMap<String, SmallOreDimensionWrapper> dimToSmallOreWrapper = new HashMap<>();
public static class SmallOreDimensionWrapper {
@@ -50,89 +52,89 @@ public class GT5OreSmallHelper {
ItemStack stack;
Materials material;
short meta;
- for (GT_Worldgen worldGen : GregTech_API.sWorldgenList)
- if (worldGen.mWorldGenName.startsWith("ore.small.") && worldGen instanceof GT_Worldgen_GT_Ore_SmallPieces) {
- GT_Worldgen_GT_Ore_SmallPieces worldGenSmallPieces = (GT_Worldgen_GT_Ore_SmallPieces) worldGen;
- meta = worldGenSmallPieces.mMeta;
- if (meta < 0) break;
- material = GregTech_API.sGeneratedMaterials[meta];
- mapOreSmallWrapper.put(worldGen.mWorldGenName, new OreSmallWrapper(worldGenSmallPieces));
- if (!mapOreMetaToOreDrops.containsKey(meta)) {
- List<ItemStack> stackList = new ArrayList<>();
- stack = GT_OreDictUnificator.get(
- OrePrefixes.gemExquisite,
- material,
- GT_OreDictUnificator.get(OrePrefixes.gem, material, 1L),
- 1L);
- if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
- mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
- stackList.add(stack);
- }
- stack = GT_OreDictUnificator.get(
- OrePrefixes.gemFlawless,
- material,
- GT_OreDictUnificator.get(OrePrefixes.gem, material, 1L),
- 1L);
- if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
- mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
- stackList.add(stack);
- }
- stack = GT_OreDictUnificator.get(OrePrefixes.gem, material, 1L);
- if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
- mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
- stackList.add(stack);
- }
- stack = GT_OreDictUnificator.get(
- OrePrefixes.gemFlawed,
- material,
- GT_OreDictUnificator.get(OrePrefixes.crushed, material, 1L),
- 1L);
- if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
- mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
- stackList.add(stack);
- }
- stack = GT_OreDictUnificator.get(OrePrefixes.crushed, material, 1L);
- if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
- mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
- stackList.add(stack);
- }
- stack = GT_OreDictUnificator.get(
- OrePrefixes.gemChipped,
- material,
- GT_OreDictUnificator.get(OrePrefixes.dustImpure, material, 1L),
- 1L);
- if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
- mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
- stackList.add(stack);
- }
- stack = GT_OreDictUnificator.get(OrePrefixes.dustImpure, material, 1L);
- if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
- mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
- stackList.add(stack);
- }
- oreSmallList.add(new ItemStack(GregTech_API.sBlockOres1, 1, meta + SMALL_ORE_BASE_META));
- mapOreMetaToOreDrops.put(meta, stackList);
- }
+ Map<String, SmallOreBuilder> smallOreDefMap = new HashMap<>();
+
+ for (SmallOres ore : SmallOres.values()) {
+ smallOreDefMap.put(ore.smallOreBuilder.smallOreName, ore.smallOreBuilder);
+ }
+
+ for (GT_Worldgen worldGen : GregTech_API.sWorldgenList) {
+ if (!worldGen.mWorldGenName.startsWith("ore.small.")
+ || !(worldGen instanceof GT_Worldgen_GT_Ore_SmallPieces)) {
+ continue;
+ }
+
+ GT_Worldgen_GT_Ore_SmallPieces worldGenSmallPieces = (GT_Worldgen_GT_Ore_SmallPieces) worldGen;
+ meta = worldGenSmallPieces.mMeta;
+ if (meta < 0) break;
+ material = GregTech_API.sGeneratedMaterials[meta];
+ mapOreSmallWrapper.put(
+ worldGen.mWorldGenName,
+ new OreSmallWrapper(smallOreDefMap.get(worldGenSmallPieces.mWorldGenName)));
+ if (mapOreMetaToOreDrops.containsKey(meta)) {
+ continue;
+ }
+
+ List<ItemStack> stackList = new ArrayList<>();
+ stack = GT_OreDictUnificator
+ .get(OrePrefixes.gemExquisite, material, GT_OreDictUnificator.get(OrePrefixes.gem, material, 1L), 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator
+ .get(OrePrefixes.gemFlawless, material, GT_OreDictUnificator.get(OrePrefixes.gem, material, 1L), 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(OrePrefixes.gem, material, 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
}
+ stack = GT_OreDictUnificator
+ .get(OrePrefixes.gemFlawed, material, GT_OreDictUnificator.get(OrePrefixes.crushed, material, 1L), 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(OrePrefixes.crushed, material, 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(
+ OrePrefixes.gemChipped,
+ material,
+ GT_OreDictUnificator.get(OrePrefixes.dustImpure, material, 1L),
+ 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(OrePrefixes.dustImpure, material, 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ oreSmallList.add(new ItemStack(GregTech_API.sBlockOres1, 1, meta + SMALL_ORE_BASE_META));
+ mapOreMetaToOreDrops.put(meta, stackList);
+
+ }
for (OreSmallWrapper oreSmallWrapper : mapOreSmallWrapper.values()) {
- bufferedDims.put(oreSmallWrapper, GT5CFGHelper.GT5CFGSmallOres(oreSmallWrapper.oreGenName));
+ bufferedDims.put(oreSmallWrapper, getDims(oreSmallWrapper));
}
// --- Handling of dimToOreWrapper ---
// Get dims as "Ow,Ne,Ma" etc.
bufferedDims.forEach((veinInfo, dims) -> {
- if (dims.equals(oreVeinNotInAnyDim)) {
- return;
- }
-
- for (String dim : dims.split(",")) {
- if (!dim.isEmpty()) {
- SmallOreDimensionWrapper dimensionSmallOres = dimToSmallOreWrapper
- .getOrDefault(dim, new SmallOreDimensionWrapper());
- dimensionSmallOres.internalDimOreList.add(veinInfo);
- dimToSmallOreWrapper.put(dim, dimensionSmallOres);
- }
+ for (String dim : dims.keySet()) {
+ SmallOreDimensionWrapper dimensionSmallOres = dimToSmallOreWrapper
+ .getOrDefault(dim, new SmallOreDimensionWrapper());
+ dimensionSmallOres.internalDimOreList.add(veinInfo);
+ dimToSmallOreWrapper.put(dim, dimensionSmallOres);
}
// Calculate probabilities for each dim.
@@ -169,6 +171,8 @@ public class GT5OreSmallHelper {
public final String worldGenHeightRange;
public final short amountPerChunk;
+ public final Map<String, Boolean> allowedDimWithOrigNames;
+
@SuppressWarnings("unused")
public Materials getOreMaterial() {
return oreMaterial;
@@ -176,14 +180,14 @@ public class GT5OreSmallHelper {
private final Materials oreMaterial;
- public OreSmallWrapper(GT_Worldgen_GT_Ore_SmallPieces worldGen) {
- this.oreGenName = worldGen.mWorldGenName;
- this.oreMeta = worldGen.mMeta;
- this.worldGenHeightRange = worldGen.mMinY + "-" + worldGen.mMaxY;
- this.amountPerChunk = worldGen.mAmount;
- ItemData oreData = GT_OreDictUnificator
- .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mMeta));
- this.oreMaterial = oreData != null ? oreData.mMaterial.mMaterial : null;
+ public OreSmallWrapper(SmallOreBuilder ore) {
+ this.oreGenName = ore.smallOreName;
+ this.oreMeta = (short) ore.ore.mMetaItemSubID;
+ this.worldGenHeightRange = ore.minY + "-" + ore.maxY;
+ this.amountPerChunk = (short) ore.amount;
+ this.oreMaterial = ore.ore;
+
+ this.allowedDimWithOrigNames = ore.dimsEnabled;
}
public List<ItemStack> getMaterialDrops(int maximumIndex) {
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/Oremix.java b/src/main/java/pers/gwyog/gtneioreplugin/util/Oremix.java
index 401cadc09f..aba9497dbe 100644
--- a/src/main/java/pers/gwyog/gtneioreplugin/util/Oremix.java
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/Oremix.java
@@ -1,600 +1,121 @@
package pers.gwyog.gtneioreplugin.util;
-import com.opencsv.bean.CsvBindByName;
-import com.opencsv.bean.CsvCustomBindByName;
+import static pers.gwyog.gtneioreplugin.util.DimensionHelper.DimNameDisplayed;
-@SuppressWarnings("unused")
-public class Oremix {
+import java.util.Map;
- @CsvCustomBindByName(column = "Moon", converter = XtoBool.class)
- public boolean mo;
+public class Oremix implements Comparable<Oremix> {
- @CsvCustomBindByName(column = "End Asteroids", converter = XtoBool.class)
- public boolean ea;
+ private String oreMixName;
- @CsvCustomBindByName(column = "AstroidBelt", converter = XtoBool.class)
- public boolean as;
-
- @CsvCustomBindByName(column = "Barnard C", converter = XtoBool.class)
- public boolean bc;
-
- @CsvCustomBindByName(column = "Barnard E", converter = XtoBool.class)
- public boolean be;
-
- @CsvCustomBindByName(column = "Barnard F", converter = XtoBool.class)
- public boolean bf;
-
- @CsvCustomBindByName(column = "Mars", converter = XtoBool.class)
- public boolean ma;
-
- @CsvCustomBindByName(column = "Callisto", converter = XtoBool.class)
- public boolean ca;
-
- @CsvCustomBindByName(column = "Centauri Bb", converter = XtoBool.class)
- public boolean cb;
-
- @CsvCustomBindByName(column = "Ceres", converter = XtoBool.class)
- public boolean ce;
-
- @CsvCustomBindByName(column = "Twilight Forest", converter = XtoBool.class)
- public boolean tf;
-
- @CsvCustomBindByName(column = "Deep Dark", converter = XtoBool.class)
- public boolean dd;
-
- @CsvCustomBindByName(column = "Phobos", converter = XtoBool.class)
- public boolean ph;
-
- @CsvCustomBindByName(column = "Deimos", converter = XtoBool.class)
- public boolean de;
-
- @CsvCustomBindByName(column = "Europa", converter = XtoBool.class)
- public boolean eu;
-
- @CsvCustomBindByName(column = "Ganymede", converter = XtoBool.class)
- public boolean ga;
-
- @CsvCustomBindByName(column = "Io", converter = XtoBool.class)
- public boolean io;
-
- @CsvCustomBindByName(column = "Venus", converter = XtoBool.class)
- public boolean ve;
-
- @CsvCustomBindByName(column = "Mercury", converter = XtoBool.class)
- public boolean me;
-
- @CsvCustomBindByName(column = "Enceladus", converter = XtoBool.class)
- public boolean en;
-
- @CsvCustomBindByName(column = "Titan", converter = XtoBool.class)
- public boolean ti;
-
- @CsvCustomBindByName(column = "Miranda", converter = XtoBool.class)
- public boolean mi;
-
- @CsvCustomBindByName(column = "Oberon", converter = XtoBool.class)
- public boolean ob;
-
- @CsvCustomBindByName(column = "Triton", converter = XtoBool.class)
- public boolean tr;
-
- @CsvCustomBindByName(column = "Proteus", converter = XtoBool.class)
- public boolean pr;
-
- @CsvCustomBindByName(column = "Pluto", converter = XtoBool.class)
- public boolean pl;
-
- @CsvCustomBindByName(column = "Kuiper Belt", converter = XtoBool.class)
- public boolean kb;
-
- @CsvCustomBindByName(column = "Haumea", converter = XtoBool.class)
- public boolean ha;
-
- @CsvCustomBindByName(column = "Makemake", converter = XtoBool.class)
- public boolean make;
-
- @CsvCustomBindByName(column = "Vega B", converter = XtoBool.class)
- public boolean vb;
-
- @CsvCustomBindByName(column = "T Ceti E", converter = XtoBool.class)
- public boolean tcetie;
-
- @CsvCustomBindByName(column = "Anubis", required = false, converter = XtoBool.class)
- public boolean an;
-
- @CsvCustomBindByName(column = "Horus", required = false, converter = XtoBool.class)
- public boolean ho;
-
- @CsvCustomBindByName(column = "Neper", required = false, converter = XtoBool.class)
- public boolean np;
-
- @CsvCustomBindByName(column = "Maahes", required = false, converter = XtoBool.class)
- public boolean mh;
-
- @CsvCustomBindByName(column = "Mehen Belt", required = false, converter = XtoBool.class)
- public boolean mb;
-
- @CsvCustomBindByName(column = "Seth", required = false, converter = XtoBool.class)
- public boolean se;
-
- @CsvCustomBindByName(column = "Ore Name", required = true, converter = Veinrenamer.class)
- private String oreName;
-
- @CsvBindByName(column = "Primary")
private String primary = "";
- @CsvBindByName(column = "Secondary")
private String secondary = "";
- @CsvBindByName(column = "Inbetween")
private String inbetween = "";
- @CsvBindByName(column = "Around")
- private String around = "";
-
- @CsvBindByName(column = "ID ")
- private String mix = "";
+ private String sporadic = "";
- @CsvBindByName(column = "Tier")
- private String tier = "";
+ private String oreMixIDs = "";
- @CsvBindByName(column = "Height")
private String height = "";
- @CsvBindByName(column = "Density")
private int density;
- @CsvBindByName(column = "Size")
private int size;
- @CsvBindByName(column = "Weight")
private int weight;
- @CsvCustomBindByName(column = "Overworld", converter = XtoBool.class)
- private boolean overworld;
-
- @CsvCustomBindByName(column = "Nether", converter = XtoBool.class)
- private boolean nether;
-
- @CsvCustomBindByName(column = "End", converter = XtoBool.class)
- private boolean end;
-
- private int miny, maxy;
-
- public Oremix() {}
-
- public boolean isMo() {
- return mo;
- }
-
- public void setMo(boolean mo) {
- this.mo = mo;
- }
-
- public boolean isEa() {
- return ea;
- }
-
- public void setEa(boolean ea) {
- this.ea = ea;
- }
-
- public boolean isAs() {
- return as;
- }
-
- public void setAs(boolean as) {
- this.as = as;
- }
-
- public boolean isBc() {
- return bc;
- }
-
- public void setBc(boolean bc) {
- this.bc = bc;
- }
-
- public boolean isBe() {
- return be;
- }
-
- public void setBe(boolean be) {
- this.be = be;
- }
-
- public boolean isBf() {
- return bf;
- }
-
- public void setBf(boolean bf) {
- this.bf = bf;
- }
-
- public boolean isMa() {
- return ma;
- }
-
- public void setMa(boolean ma) {
- this.ma = ma;
- }
-
- public boolean isCa() {
- return ca;
- }
-
- public void setCa(boolean ca) {
- this.ca = ca;
- }
-
- public boolean isCb() {
- return cb;
- }
-
- public void setCb(boolean cb) {
- this.cb = cb;
- }
-
- public boolean isCe() {
- return ce;
- }
-
- public void setCe(boolean ce) {
- this.ce = ce;
- }
-
- public boolean isTf() {
- return tf;
- }
-
- public void setTf(boolean tf) {
- this.tf = tf;
- }
-
- public boolean isDd() {
- return dd;
- }
-
- public void setDd(boolean dd) {
- this.dd = dd;
- }
-
- public boolean isPh() {
- return ph;
- }
-
- public void setPh(boolean ph) {
- this.ph = ph;
- }
-
- public boolean isDe() {
- return de;
- }
-
- public void setDe(boolean de) {
- this.de = de;
- }
-
- public boolean isEu() {
- return eu;
- }
-
- public void setEu(boolean eu) {
- this.eu = eu;
- }
-
- public boolean isGa() {
- return ga;
- }
-
- public void setGa(boolean ga) {
- this.ga = ga;
- }
-
- public boolean isIo() {
- return io;
- }
-
- public void setIo(boolean io) {
- this.io = io;
- }
-
- public boolean isVe() {
- return ve;
- }
-
- public void setVe(boolean ve) {
- this.ve = ve;
- }
-
- public boolean isMe() {
- return me;
- }
-
- public void setMe(boolean me) {
- this.me = me;
- }
-
- public boolean isEn() {
- return en;
- }
-
- public void setEn(boolean en) {
- this.en = en;
- }
-
- public boolean isTi() {
- return ti;
- }
-
- public void setTi(boolean ti) {
- this.ti = ti;
- }
-
- public boolean isMi() {
- return mi;
- }
-
- public void setMi(boolean mi) {
- this.mi = mi;
- }
-
- public boolean isOb() {
- return ob;
- }
-
- public void setOb(boolean ob) {
- this.ob = ob;
- }
-
- public boolean isTr() {
- return tr;
- }
-
- public void setTr(boolean tr) {
- this.tr = tr;
- }
-
- public boolean isPr() {
- return pr;
- }
-
- public void setPr(boolean pr) {
- this.pr = pr;
- }
-
- public boolean isPl() {
- return pl;
- }
-
- public void setPl(boolean pl) {
- this.pl = pl;
- }
-
- public boolean isKb() {
- return kb;
- }
-
- public void setKb(boolean kb) {
- this.kb = kb;
- }
-
- public boolean isHa() {
- return ha;
- }
+ private static final int sizeData = 10; // hors dims
- public void setHa(boolean ha) {
- this.ha = ha;
- }
+ private Map<String, Boolean> dimensions;
- public boolean isMake() {
- return make;
+ public void setDims(Map<String, Boolean> dims) {
+ this.dimensions = dims;
}
- public void setMake(boolean make) {
- this.make = make;
+ public String getOreMixName() {
+ return this.oreMixName;
}
- public boolean isVb() {
- return vb;
- }
-
- public void setVb(boolean vb) {
- this.vb = vb;
- }
-
- public boolean isTcetie() {
- return tcetie;
- }
-
- public void setTcetie(boolean tcetie) {
- this.tcetie = tcetie;
- }
-
- public boolean isAn() {
- return an;
- }
-
- public void setAn(boolean an) {
- this.an = an;
- }
-
- public boolean isHo() {
- return ho;
- }
-
- public void setHo(boolean ho) {
- this.ho = ho;
- }
-
- public boolean isNp() {
- return np;
- }
-
- public void setNp(boolean np) {
- this.np = np;
- }
-
- public boolean isMh() {
- return mh;
- }
-
- public void setMh(boolean mh) {
- this.mh = mh;
- }
-
- public boolean isMb() {
- return mb;
- }
-
- public void setMb(boolean mb) {
- this.mb = mb;
- }
-
- public boolean isSe() {
- return se;
- }
-
- public void setSe(boolean se) {
- this.se = se;
- }
-
- public String getOreName() {
- return this.oreName;
- }
-
- public void setOreName(String s) {
- this.oreName = s;
- }
-
- public String getPrimary() {
- return this.primary;
+ public void setOreMixName(String s) {
+ this.oreMixName = s;
}
public void setPrimary(String s) {
this.primary = s;
}
- public String getSecondary() {
- return this.secondary;
- }
-
public void setSecondary(String s) {
this.secondary = s;
}
- public String getInbetween() {
- return this.inbetween;
- }
-
public void setInbetween(String s) {
this.inbetween = s;
}
- public String getAround() {
- return this.around;
- }
-
- public void setAround(String s) {
- this.around = s;
- }
-
- public String getMix() {
- return this.mix;
- }
-
- public void setMix(String s) {
- this.mix = s;
- }
-
- public String getTier() {
- return this.tier;
- }
-
- public void setTier(String s) {
- this.tier = s;
+ public void setSporadic(String s) {
+ this.sporadic = s;
}
- public String getHeight() {
- return this.height;
+ public void setOreMixIDs(String s) {
+ this.oreMixIDs = s;
}
public void setHeight(String s) {
this.height = s;
}
- public int getDensity() {
- return this.density;
- }
-
public void setDensity(int i) {
this.density = i;
}
- public int getSize() {
- return this.size;
- }
-
public void setSize(int i) {
this.size = i;
}
- public int getWeight() {
- return this.weight;
- }
-
public void setWeight(int i) {
this.weight = i;
}
- public int getMinY() {
- calculateminmax();
- return this.miny;
- }
-
- public void setMinY(int i) {
- this.miny = i;
- }
-
- public int getMaxY() {
- calculateminmax();
- return this.maxy;
- }
-
- public void setMaxY(int i) {
- this.maxy = i;
- }
-
- public boolean getOverworld() {
- return this.overworld;
- }
-
- public void setOverworld(boolean s) {
- this.overworld = s;
- }
-
- public boolean getNether() {
- return this.nether;
- }
-
- public void setNether(boolean s) {
- this.nether = s;
- }
-
- public boolean getEnd() {
- return this.end;
- }
-
- public void setEnd(boolean s) {
- this.end = s;
- }
-
- private void calculateminmax() {
- this.miny = Integer.parseInt(this.height.split("-")[0]);
- this.maxy = Integer.parseInt(this.height.split("-")[1]);
- }
-
- public String getHeightcalced() {
- return this.miny + "-" + this.maxy;
+ @Override
+ public int compareTo(Oremix ore) {
+ return ore.oreMixName.compareTo(ore.oreMixName);
+ }
+
+ public static String getCsvHeader() {
+ String[] headers = new String[sizeData + DimNameDisplayed.length];
+ headers[0] = "Ore Mix Name";
+ headers[1] = "Primary Ore";
+ headers[2] = "Secondary Ore";
+ headers[3] = "InBetween Ore";
+ headers[4] = "Sporadic Ore";
+ headers[5] = "Ore Meta IDs";
+ headers[6] = "Height";
+ headers[7] = "Density";
+ headers[8] = "Size";
+ headers[9] = "Weight";
+ for (int i = 0; i < DimNameDisplayed.length; i++) {
+ headers[sizeData + i] = DimensionHelper.getFullName(DimNameDisplayed[i]);
+ }
+ return String.join(",", headers);
+ }
+
+ public String getCsvEntry() {
+ String[] values = new String[sizeData + DimNameDisplayed.length];
+ values[0] = oreMixName;
+ values[1] = primary;
+ values[2] = secondary;
+ values[3] = inbetween;
+ values[4] = sporadic;
+ values[5] = oreMixIDs;
+ values[6] = height;
+ values[7] = Integer.toString(density);
+ values[8] = Integer.toString(size);
+ values[9] = Integer.toString(weight);
+ for (int i = 0; i < DimNameDisplayed.length; i++) {
+ values[sizeData + i] = Boolean.toString(dimensions.getOrDefault(DimNameDisplayed[i], false));
+ }
+ return String.join(",", values);
}
}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/SmallOre.java b/src/main/java/pers/gwyog/gtneioreplugin/util/SmallOre.java
new file mode 100644
index 0000000000..75a691ad1c
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/SmallOre.java
@@ -0,0 +1,82 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import static pers.gwyog.gtneioreplugin.util.DimensionHelper.DimNameDisplayed;
+
+import java.util.Map;
+
+@SuppressWarnings("unused")
+public class SmallOre implements Comparable<SmallOre> {
+
+ private String oreName;
+ private int oreMeta;
+ private int amount;
+ private String height = "";
+ private static final int sizeData = 4; // hors dims
+
+ private Map<String, Boolean> dimensions;
+
+ public void setDims(Map<String, Boolean> dims) {
+ this.dimensions = dims;
+ }
+
+ public String getOreName() {
+ return this.oreName;
+ }
+
+ public void setOreName(String s) {
+ this.oreName = s;
+ }
+
+ public int getOreMeta() {
+ return this.oreMeta;
+ }
+
+ public void setOreMeta(int meta) {
+ this.oreMeta = meta;
+ }
+
+ public String getHeight() {
+ return this.height;
+ }
+
+ public void setHeight(String s) {
+ this.height = s;
+ }
+
+ public void setAmount(int i) {
+ this.amount = i;
+ }
+
+ public int getAmount() {
+ return this.amount;
+ }
+
+ public static String getCsvHeader() {
+ String[] headers = new String[sizeData + DimNameDisplayed.length];
+ headers[0] = "Ore Name";
+ headers[1] = "Block Meta";
+ headers[2] = "Height";
+ headers[3] = "Amount Per Chunk";
+ for (int i = 0; i < DimNameDisplayed.length; i++) {
+ headers[sizeData + i] = DimensionHelper.getFullName(DimNameDisplayed[i]);
+ }
+ return String.join(",", headers);
+ }
+
+ public String getCsvEntry() {
+ String[] values = new String[sizeData + DimNameDisplayed.length];
+ values[0] = oreName;
+ values[1] = Integer.toString(oreMeta);
+ values[2] = getHeight();
+ values[3] = Integer.toString(amount);
+ for (int i = 0; i < DimNameDisplayed.length; i++) {
+ values[sizeData + i] = Boolean.toString(dimensions.getOrDefault(DimNameDisplayed[i], false));
+ }
+ return String.join(",", values);
+ }
+
+ @Override
+ public int compareTo(SmallOre other) {
+ return oreName.compareTo(other.oreName);
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/Veinrenamer.java b/src/main/java/pers/gwyog/gtneioreplugin/util/Veinrenamer.java
deleted file mode 100644
index 346573e2a9..0000000000
--- a/src/main/java/pers/gwyog/gtneioreplugin/util/Veinrenamer.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package pers.gwyog.gtneioreplugin.util;
-
-import com.opencsv.bean.AbstractBeanField;
-
-public class Veinrenamer<T> extends AbstractBeanField<T> {
-
- @Override
- protected Object convert(String value) {
- String ret;
- CharSequence s = "/";
-
- if (value.contains(s)) {
- ret = value.split("/")[1];
- ret = ret.replaceAll("&", "");
- ret = ret.replaceAll(" ", "");
- ret = ret.replaceAll("\\.", "");
- ret = ret.toLowerCase();
- } else ret = value;
- ret = ret.replaceAll(" ", "");
- ret = ret.toLowerCase();
- return ret;
- }
-}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/XtoBool.java b/src/main/java/pers/gwyog/gtneioreplugin/util/XtoBool.java
deleted file mode 100644
index 4c15cdecb6..0000000000
--- a/src/main/java/pers/gwyog/gtneioreplugin/util/XtoBool.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package pers.gwyog.gtneioreplugin.util;
-
-import java.util.ResourceBundle;
-
-import org.apache.commons.beanutils.ConversionException;
-import org.apache.commons.beanutils.Converter;
-import org.apache.commons.beanutils.converters.BooleanConverter;
-
-import com.opencsv.bean.AbstractBeanField;
-import com.opencsv.exceptions.CsvDataTypeMismatchException;
-
-public class XtoBool<T> extends AbstractBeanField<T> {
-
- @Override
- protected Object convert(String value) throws CsvDataTypeMismatchException {
- if (value.isEmpty()) {
- return null;
- }
- String[] trueStrings = { "x", "X" };
- String[] falseStrings = { "" };
- Converter bc = new BooleanConverter(trueStrings, falseStrings);
- try {
- return bc.convert(Boolean.class, value.trim());
- } catch (ConversionException e) {
- CsvDataTypeMismatchException csve = new CsvDataTypeMismatchException(
- value,
- field.getType(),
- ResourceBundle.getBundle("convertGermanToBoolean", errorLocale)
- .getString("input.not.boolean"));
- csve.initCause(e);
- throw csve;
- }
- }
-}