aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/nei/dumper
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/nei/dumper')
-rw-r--r--src/main/java/gregtech/nei/dumper/GregTechIDDumper.java60
-rw-r--r--src/main/java/gregtech/nei/dumper/MetaItemDumper.java60
-rw-r--r--src/main/java/gregtech/nei/dumper/MetaTileEntityDumper.java35
3 files changed, 155 insertions, 0 deletions
diff --git a/src/main/java/gregtech/nei/dumper/GregTechIDDumper.java b/src/main/java/gregtech/nei/dumper/GregTechIDDumper.java
new file mode 100644
index 0000000000..896ec8f83b
--- /dev/null
+++ b/src/main/java/gregtech/nei/dumper/GregTechIDDumper.java
@@ -0,0 +1,60 @@
+package gregtech.nei.dumper;
+
+import net.minecraft.util.ChatComponentTranslation;
+import net.minecraft.util.ChatStyle;
+import net.minecraft.util.EnumChatFormatting;
+
+import codechicken.nei.NEIClientUtils;
+import codechicken.nei.config.DataDumper;
+import cpw.mods.fml.common.Loader;
+
+public abstract class GregTechIDDumper extends DataDumper {
+
+ public GregTechIDDumper(String name) {
+ super("tools.dump.gt5u." + name);
+ }
+
+ @Override
+ public Iterable<String[]> dump(int modeInt) {
+ return dump(getMode(modeInt));
+ }
+
+ protected abstract Iterable<String[]> dump(Mode mode);
+
+ @Override
+ public String modeButtonText() {
+ return NEIClientUtils.lang.translate("options.tools.dump.gt5u.mode." + getMode());
+ }
+
+ @Override
+ public void dumpFile() {
+ super.dumpFile();
+ logWarn();
+ }
+
+ protected void super$dumpFile() {
+ super.dumpFile();
+ }
+
+ protected void logWarn() {
+ if (!Loader.isModLoaded("dreamcraft")) {
+ NEIClientUtils.printChatMessage(
+ new ChatComponentTranslation("nei.options.tools.dump.gt5u.warn_env")
+ .setChatStyle(new ChatStyle().setColor(EnumChatFormatting.DARK_RED)));
+ }
+ }
+
+ @Override
+ public int modeCount() {
+ return Mode.values().length;
+ }
+
+ protected Mode getMode(int modeInt) {
+ return Mode.values()[modeInt];
+ }
+
+ protected enum Mode {
+ FREE,
+ USED
+ }
+}
diff --git a/src/main/java/gregtech/nei/dumper/MetaItemDumper.java b/src/main/java/gregtech/nei/dumper/MetaItemDumper.java
new file mode 100644
index 0000000000..9e22f621c5
--- /dev/null
+++ b/src/main/java/gregtech/nei/dumper/MetaItemDumper.java
@@ -0,0 +1,60 @@
+package gregtech.nei.dumper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChatComponentText;
+
+import codechicken.nei.NEIClientUtils;
+import gregtech.api.items.GT_MetaGenerated_Item;
+
+public class MetaItemDumper extends GregTechIDDumper {
+
+ private final GT_MetaGenerated_Item item;
+ private final String nameSuffix;
+
+ public MetaItemDumper(GT_MetaGenerated_Item item, String name) {
+ super(name);
+ this.nameSuffix = name;
+ this.item = item;
+ }
+
+ @Override
+ public String[] header() {
+ return new String[] { "id", "stackName", "metaID" };
+ }
+
+ @Override
+ protected Iterable<String[]> dump(Mode mode) {
+ List<String[]> list = new ArrayList<>();
+ for (int i = 0; i < item.mItemAmount; i++) {
+ int metaID = item.mOffset + i;
+ boolean generated = item.mEnabledItems.get(i);
+ if (mode == Mode.FREE && !generated) {
+ list.add(new String[] { String.valueOf(i), "", String.valueOf(metaID), });
+ } else if (mode == Mode.USED && generated) {
+ list.add(
+ new String[] { String.valueOf(i), new ItemStack(item, 1, metaID).getDisplayName(),
+ String.valueOf(metaID), });
+ }
+ }
+ return list;
+ }
+
+ @Override
+ public void dumpFile() {
+ super.super$dumpFile();
+ NEIClientUtils.printChatMessage(
+ new ChatComponentText(String.format("mOffset: %s, mItemAmount: %s", item.mOffset, item.mItemAmount)));
+ logWarn();
+ }
+
+ @Override
+ public String translateN(String s, Object... args) {
+ if (name.equals(s) || (name + "s").equals(s)) {
+ return nameSuffix;
+ }
+ return super.translateN(s, args);
+ }
+}
diff --git a/src/main/java/gregtech/nei/dumper/MetaTileEntityDumper.java b/src/main/java/gregtech/nei/dumper/MetaTileEntityDumper.java
new file mode 100644
index 0000000000..0e89183854
--- /dev/null
+++ b/src/main/java/gregtech/nei/dumper/MetaTileEntityDumper.java
@@ -0,0 +1,35 @@
+package gregtech.nei.dumper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+
+public class MetaTileEntityDumper extends GregTechIDDumper {
+
+ public MetaTileEntityDumper() {
+ super("metatileentity");
+ }
+
+ @Override
+ public String[] header() {
+ return new String[] { "id", "stackName", "className", };
+ }
+
+ @Override
+ protected Iterable<String[]> dump(Mode mode) {
+ List<String[]> list = new ArrayList<>();
+ for (int i = 1; i < GregTech_API.METATILEENTITIES.length; i++) {
+ IMetaTileEntity mte = GregTech_API.METATILEENTITIES[i];
+ if (mode == Mode.FREE && mte == null) {
+ list.add(new String[] { String.valueOf(i), "", "", });
+ } else if (mode == Mode.USED && mte != null) {
+ list.add(
+ new String[] { String.valueOf(i), mte.getStackForm(1).getDisplayName(),
+ mte.getClass().getSimpleName() });
+ }
+ }
+ return list;
+ }
+}