package tonius.neiintegration.mods.mcforge.dumpers;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import net.minecraftforge.common.DimensionManager;
import codechicken.nei.config.DataDumper;
import cpw.mods.fml.relauncher.ReflectionHelper;
public class DimensionDumper extends DataDumper {
public DimensionDumper() {
super("tools.dump.neiintegration.dimension");
}
@Override
public String[] header() {
return new String[] { "ID", "Provider ID", "Provider Class Name" };
}
@Override
public Iterable<String[]> dump(int mode) {
List<String[]> list = new LinkedList<String[]>();
List<Integer> ids = new ArrayList<Integer>();
ids.addAll(Arrays.asList(DimensionManager.getStaticDimensionIDs()));
Collections.sort(ids);
for (int id : ids) {
int providerId = DimensionManager.getProviderType(id);
Map<Integer, Class> providers = ReflectionHelper.getPrivateValue(DimensionManager.class, null, "providers");
Class providerClass = providers.get(providerId);
list.add(new String[] { String.valueOf(id), String.valueOf(providerId), providerClass.getName() });
}
return list;
}
@Override
public int modeCount() {
return 1;
}
}