aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java')
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java209
1 files changed, 45 insertions, 164 deletions
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) {