package tonius.neiintegration.mods.mcforge.dumpers;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import net.minecraft.tileentity.TileEntity;
import codechicken.nei.config.DataDumper;
import cpw.mods.fml.relauncher.ReflectionHelper;
public class TileEntityDumper extends DataDumper {
public TileEntityDumper() {
super("tools.dump.neiintegration.tileentity");
}
@Override
public String[] header() {
return new String[] { "Class Name", "Registered Name" };
}
@Override
public Iterable<String[]> dump(int mode) {
List<String[]> list = new LinkedList<String[]>();
Map<Class, String> classToNameMap = ReflectionHelper.getPrivateValue(TileEntity.class, null, "field_145853_j", "classToNameMap");
List<Class> classes = new ArrayList<Class>();
classes.addAll(classToNameMap.keySet());
Collections.sort(classes, new Comparator<Class>() {
@Override
public int compare(Class o1, Class o2) {
if (o1 == null || o2 == null) {
return 0;
}
return o1.getName().compareTo(o2.getName());
}
});
for (Class clazz : classes) {
if (clazz != null) {
list.add(new String[] { clazz.getName(), classToNameMap.get(clazz) });
}
}
return list;
}
@Override
public int modeCount() {
return 1;
}
}