aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/pers
diff options
context:
space:
mode:
authorboubou19 <miisterunknown@gmail.com>2024-08-27 20:50:30 +0200
committerGitHub <noreply@github.com>2024-08-27 18:50:30 +0000
commit4908d5967c3dfeff5616c65144e701859b9e30a2 (patch)
tree3e58a4b8ebd8b70745e81c4c71c765980e4ec4f4 /src/main/java/pers
parent3c574facfb224029c0b69865e281023da6170ce0 (diff)
downloadGT5-Unofficial-4908d5967c3dfeff5616c65144e701859b9e30a2.tar.gz
GT5-Unofficial-4908d5967c3dfeff5616c65144e701859b9e30a2.tar.bz2
GT5-Unofficial-4908d5967c3dfeff5616c65144e701859b9e30a2.zip
Config/gregtech.cfg (#2939)
* first pass on config migration * second pass on config migration * removing bad configs * rename config classes and register them * move debug options to its own debug category * migrate pollution * finish migrating general config * removing useless config * finish GregTech.cfg port to GTNHLib * don't accidentally force panic mode in dev env * typo * defaults are now handled by the confg handler * remove dead config * force config save after defaults are being written * stop messing with the GregTech.cfg externally * removing comments * new underground fluid builder and porting default underground fluids to code * move config handlers of gregtech.cfg in their own package * process MachineStats.cfg * yeeted MaterialProperties.cfg * remove unused compat in GTNH * process OverpoweredStuff.cfg * process Other.cfg * ungregify some config variables * remove unused variables * fix Ids.cfg not being populated * delete duplicate printing of MTE IDs in GT5U clients * bump hodgepodge version to get mod phase timers * process Client.cfg * fix bad category naming * registering all the config handlers in gui * bump GTNHLib version * actually only registering client configs * use proper double arrays now * move GT ore mixes to patternbuilders * dead code * fix multifiles config not being handled properly * import class from NHCore * removing reflection * use enums for registration * yeet config for Asteroid dimensions * remove unused since 2015 enum entry * todo * rework oremix enums * imported dimension data in enums * convert old dirty predicate into proper one * hook gagreg onto the OreMixes enum * finally nuke worldgen.ore.mix config category! * hook gagreg small ores onto the SmallOres enum * imported dim values in enum * fix dirty work around in vm predicate * yeet unused classes * hook GT stones to GTStones enum * yeet all the remaining booleans in the worldgen category * port endasteroids category * port general category * deprecated * yeet unused bw compat * finish worldgen config migration * hardcode config into code * remove not generated config entry * remove Unification.cfg * fix build * migrate oreveins away from config * migrate small ores away from config * delete config parser * forgotten * fix EoH recipe crash in dev * fix GT NEI Ore Plugin config and csv paths * shade opencsv * rewrite csv generator * spotless apply
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 α Centau