diff options
Diffstat (limited to 'src/main/java/gregtech/nei/dumper')
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; + } +} |