aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/nei/dumper/MaterialDumper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/nei/dumper/MaterialDumper.java')
-rw-r--r--src/main/java/gregtech/nei/dumper/MaterialDumper.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main/java/gregtech/nei/dumper/MaterialDumper.java b/src/main/java/gregtech/nei/dumper/MaterialDumper.java
new file mode 100644
index 0000000000..3234779de8
--- /dev/null
+++ b/src/main/java/gregtech/nei/dumper/MaterialDumper.java
@@ -0,0 +1,39 @@
+package gregtech.nei.dumper;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+
+public class MaterialDumper extends GregTechIDDumper {
+
+ public MaterialDumper() {
+ super("material");
+ }
+
+ @Override
+ public String[] header() {
+ return new String[] { "id", "name", };
+ }
+
+ @Override
+ protected Iterable<String[]> dump(Mode mode) {
+ List<String[]> dump = new ArrayList<>();
+ Map<Integer, Materials> idMap = Arrays.stream(GregTech_API.sGeneratedMaterials)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toMap(m -> m.mMetaItemSubID, m -> m));
+ for (int i = 0; i < 1000; i++) {
+ if (mode == Mode.FREE && !idMap.containsKey(i)) {
+ dump.add(new String[] { String.valueOf(i), "", });
+ } else if (mode == Mode.USED && idMap.containsKey(i)) {
+ dump.add(new String[] { String.valueOf(i), idMap.get(i).mName, });
+ }
+ }
+ return dump;
+ }
+}