// Path: research/ResearchStage.java
// public static class Knowledge {
// 	public EnumKnowledgeType type;
//    	public ResearchCategory category; 
//    	public int amount = 0;
//     	
//    	public Knowledge(EnumKnowledgeType type, ResearchCategory category, int num) {
// 		super();
// 		this.type = type;
// 		this.category = category;
// 		this.amount = num;
// 	}
// 
// 	public static Knowledge parse(String text) {
//    		String[] s = text.split(";");
//    		if (s.length==2) {
//    			int num = 0;
//    			try {
//    				num = Integer.parseInt(s[1]);
//    			} catch (Exception e) {}    			
//    			EnumKnowledgeType t = EnumKnowledgeType.valueOf(s[0].toUpperCase());
//    			if (t!=null && !t.hasFields() && num>0) {
//    				return new Knowledge(t, null, num);
//    			}
//    		} else if (s.length==3) {
//    			int num = 0;
//    			try {
//    				num = Integer.parseInt(s[2]);
//    			} catch (Exception e) {}    			
//    			EnumKnowledgeType t = EnumKnowledgeType.valueOf(s[0].toUpperCase());
//    			ResearchCategory f = ResearchCategories.getResearchCategory(s[1].toUpperCase());
//    			if (t!=null && f!=null && num>0) {
//    				return new Knowledge(t,f,num);
//    			}
//    		}
//    		return null;
//    	}
//    }


import java.util.Arrays;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.translation.I18n;
import thaumcraft.api.research.ResearchStage.Knowledge;
package thaumcraft.api.research;



public class ResearchEntry 
{
	

	/**
	 * A short string used as a key for this research. Must be unique
	 */
	String key;
	
	/**
	 * A short string used as a reference to the research category to which this must be added.
	 */
	String category;
	
	/**
	 * A text name of the research entry. Can be a localizable string.
	 */
	String name;
	
	/**
     * This links to any research that needs to be completed before this research can be discovered or learnt.
     */
    String[] parents;
        
    /**
     * any research linked to this that will be unlocked automatically when this research is complete
     */
    String[] siblings;
    
	
    /**
     * the horizontal position of the research icon
     */
    int displayColumn;

    /**
     * the vertical position of the research icon
     */
    int displayRow;
    
    /**
     * the icon to be used for this research 
     */
    Object[] icons;    

    /**
     * special meta-data tags that indicate how this research must be handled
     */
    EnumResearchMeta[] meta;
    
    /**
     * items the player will receive on completion of this research
     */
    ItemStack[] rewardItem;
    
    /**
     * knowledge the player will receive on completion of this research
     */
// Path: research/ResearchStage.java
// public static class Knowledge {
// 	public EnumKnowledgeType type;
//    	public ResearchCategory category; 
//    	public int amount = 0;
//     	
//    	public Knowledge(EnumKnowledgeType type, ResearchCategory category, int num) {
// 		super();
// 		this.type = type;
// 		this.category = category;
// 		this.amount = num;
// 	}
// 
// 	public static Knowledge parse(String text) {
//    		String[] s = text.split(";");
//    		if (s.length==2) {
//    			int num = 0;
//    			try {
//    				num = Integer.parseInt(s[1]);
//    			} catch (Exception e) {}    			
//    			EnumKnowledgeType t = EnumKnowledgeType.valueOf(s[0].toUpperCase());
//    			if (t!=null && !t.hasFields() && num>0) {
//    				return new Knowledge(t, null, num);
//    			}
//    		} else if (s.length==3) {
//    			int num = 0;
//    			try {
//    				num = Integer.parseInt(s[2]);
//    			} catch (Exception e) {}    			
//    			EnumKnowledgeType t = EnumKnowledgeType.valueOf(s[0].toUpperCase());
//    			ResearchCategory f = ResearchCategories.getResearchCategory(s[1].toUpperCase());
//    			if (t!=null && f!=null && num>0) {
//    				return new Knowledge(t,f,num);
//    			}
//    		}
//    		return null;
//    	}
//    }


// Path: research/ResearchEntry.java
import java.util.Arrays;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.translation.I18n;
import thaumcraft.api.research.ResearchStage.Knowledge;

package thaumcraft.api.research;



public class ResearchEntry 
{
	

	/**
	 * A short string used as a key for this research. Must be unique
	 */
	String key;
	
	/**
	 * A short string used as a reference to the research category to which this must be added.
	 */
	String category;
	
	/**
	 * A text name of the research entry. Can be a localizable string.
	 */
	String name;
	
	/**
     * This links to any research that needs to be completed before this research can be discovered or learnt.
     */
    String[] parents;
        
    /**
     * any research linked to this that will be unlocked automatically when this research is complete
     */
    String[] siblings;
    
	
    /**
     * the horizontal position of the research icon
     */
    int displayColumn;

    /**
     * the vertical position of the research icon
     */
    int displayRow;
    
    /**
     * the icon to be used for this research 
     */
    Object[] icons;    

    /**
     * special meta-data tags that indicate how this research must be handled
     */
    EnumResearchMeta[] meta;
    
    /**
     * items the player will receive on completion of this research
     */
    ItemStack[] rewardItem;
    
    /**
     * knowledge the player will receive on completion of this research
     */
    Knowledge[] rewardKnow;