Skip to content

Instantly share code, notes, and snippets.

@Vazkii
Created April 9, 2014 17:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Vazkii/10297503 to your computer and use it in GitHub Desktop.
Save Vazkii/10297503 to your computer and use it in GitHub Desktop.
AspectDumper
package vazkii.aspects;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.AspectList;
import thaumcraft.common.lib.ThaumcraftCraftingManager;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
@Mod(modid = "aspects", name = "Aspects!", version = "0.69", dependencies = "required-after:Thaumcraft;after:*")
public class AspectDumper {
@EventHandler
public void onPostInit(FMLPostInitializationEvent event) {
List<String> prints = new ArrayList();
for(int i = 0; i < Item.itemsList.length; i++) {
Item item = Item.itemsList[i];
if(item != null) {
List<ItemStack> stacks = new ArrayList();
try {
item.getSubItems(item.itemID, item.getCreativeTab(), stacks);
for(ItemStack stack : stacks)
prints.add(createAspectString(stack));
} catch(Throwable t) {
t.printStackTrace();
}
}
}
Collections.sort(prints);
File fileAspects = new File(".", "aspects.txt");
File fileAspectsClean = new File(".", "aspectsClean.txt");
try {
fileAspects.createNewFile();
fileAspectsClean.createNewFile();
BufferedWriter writerAspects = new BufferedWriter(new FileWriter(fileAspects));
BufferedWriter writerAspectsClean = new BufferedWriter(new FileWriter(fileAspectsClean));
for(String s : prints) {
writerAspects.write(s + "\n");
if(!s.contains(": nil"))
writerAspectsClean.write(s + "\n");
}
writerAspects.close();
writerAspectsClean.close();
} catch(IOException e) {
throw new RuntimeException(e);
}
}
private String createAspectString(ItemStack stack) {
StringBuilder sb = new StringBuilder();
sb.append(stack.getDisplayName()).append(" : ");
AspectList aspects = ThaumcraftCraftingManager.getObjectTags(stack);
if(aspects == null || aspects.size() == 0)
sb.append("nil");
else {
AspectList copyList = new AspectList();
for(Aspect aspect : aspects.getAspectsSortedAmount()) {
if(aspect == null)
continue;
int count = aspects.getAmount(aspect);
if(count > 0)
copyList.add(aspect, count);
}
if(copyList.size() == 0)
sb.append("nil");
else for(Aspect aspect : copyList.getAspectsSortedAmount()) {
if(aspect == null)
continue;
int count = aspects.getAmount(aspect);
if(count > 0)
sb.append(aspect.getName()).append(":").append(count).append(" ");
}
}
return sb.toString();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment